루프 이후에 nil을 반환하고 Ruby의 except 블록에서도 반환합니다.
다음과 같은 작업 코드가 있습니다. 루프 nil
후 each
와 unless else
아래 예제에서 더 좋은 방법이 있습니까?
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
nil
이 메서드가 호출되는 다른 메서드에는 다른 조건이 있기 때문에 각 경우에 통과해야합니다 . 이것이 제가 위와 같이 코드를 작성한 이유입니다.
답변
5 D.SM
Ruby에는 detect
메서드가 있으므로 전체 메서드를
members.detect { |member| member.name == member_name }
제쳐두고, each
빈 배열에 대해 잘 작동하므로 empty?
명시 적 루프를 유지하더라도 확인이 완전히 필요하지 않습니다.