다음은 주어진 전자 메일 주소가 전자 메일 클래스 속성의 '수신자 :'수신자 배열의 일부인지 확인하는 루비 코드입니다. 코드에서 목록에 email_address
이 있으면 true를 반환하고 그렇지 않으면 false를 반환해야합니다.중첩 루프에서 Ruby 기능이 'true'로 중단되지 않는 이유는 무엇입니까?
def is_to_receiver?(email_address)
if @raw_email.to != nil
@raw_email.to.each do |to_field|
if to_field == email_address
true
else
next
end
end
end
false
end
나는 항상 라인 5 true
즉시 기능을 깨고 진정한 가치와 기능을 돌려 것이라고 생각했다. 그러나 일치하는 전자 메일 주소에 대한 결과는 11 호선에서 false
으로 유지되었습니다.이 작업을 수행하려면 5 호선을 return true
으로 변경해야했습니다.
코드를 Ruby 1.8.7에서 Ruby 1.9.3으로 마이그레이션했습니다. 이전에 잘 작동했는지 꽤 확신했습니다. Ruby 1.9.3 이후 단순히 실수를하거나이 동작이 변경된 것이 궁금합니다. 모든 답장을 환영합니다!
이 동작을 기대하는 이유는 단순히 없습니다입니다. –
'true' 대신에'return'을 사용하십시오 .. –
이것은 결코 효과가 없었을 것입니다. – sevenseacat