Retorno nulo após o loop e também no bloco excepto em Ruby
Aug 18 2020
Eu tenho um código de trabalho como abaixo. Existe alguma maneira melhor de retornar nilapós o eachloop e unless elseno exemplo abaixo?
def find_member(member_name)
unless members.empty?
members.each do |member|
if member.name == member_name
return member
end
end
nil
else
nil
end
end
Devo passar nilem cada caso porque existem condições diferentes em outros métodos onde esse método é chamado. Essa é a razão pela qual escrevi o código acima.
Respostas
5 D.SM Aug 18 2020 at 03:05
Ruby tem um detectmétodo, então todo o seu método pode ser substituído por
members.detect { |member| member.name == member_name }
Como um aparte, eachfunciona bem para matrizes vazias, portanto, a empty?verificação que você faz é completamente desnecessária, mesmo se você mantiver o loop explícito.
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino