목록을 살펴볼 때 return을 사용하고 목록의 구성원이 기준을 충족하면 함수를 종료하고 싶습니다. 다음과 같은 단일 문으로이를 수행 할 수 있습니다.
list.select{|k| k.meets_criteria}.length == 0
어떤 상황에서는
list.each{|k| return false if k.meets_criteria}
제가 생각하기에 유연성이 추가 된 한 줄입니다. 예를 들어, 첫 번째 예제는 이것이 메소드의 유일한 라인이고 우리는 어떤 일이 있어도이 지점에서 돌아오고 싶다고 가정합니다. 그러나 이것이 나머지 메서드를 진행하는 것이 안전한지 여부를 확인하는 테스트 인 경우 첫 번째 예제에서는 다른 방식으로 처리해야합니다.
편집하다:
유연성을 추가하려면 다음 코드 줄을 고려하십시오.
list_of_method_names_as_symbols.each{|k| list_of_objects.each{|j| return k if j.send(k)}}
나는 이것이 없이도 한 줄로 성취 될 수 있다고 확신 return
하지만, 머리 꼭대기에서 나는 방법을 알지 못합니다.
그러나 이것은 이제 부울 메서드 목록과 해당 메서드를 구현하는 개체 목록을 사용하여 호출 할 수있는 상당히 유연한 코드 줄입니다.
편집하다
이 줄은 블록이 아닌 메서드 내부에 있다고 가정합니다.
그러나 이것은 대부분 문체적인 선택이며, 대부분의 상황에서 return
.