Devuelve nil después del ciclo y también en bloque a menos que en Ruby
Aug 18 2020
Tengo un código de trabajo como el siguiente. ¿Hay alguna forma mejor de volver nil
después del each
ciclo y unless else
en el siguiente ejemplo?
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
Debería pasar nil
en cada caso porque hay diferentes condiciones en otros métodos donde se llama a este método. Esa es la razón por la que he escrito el código como se indica arriba.
Respuestas
5 D.SM Aug 18 2020 at 03:05
Ruby tiene un detect
método, por lo que todo su método se puede reemplazar con
members.detect { |member| member.name == member_name }
Aparte, each
funciona bien para matrices vacías, por lo tanto, la empty?
verificación que tiene es completamente innecesaria incluso si mantiene el bucle explícito.