nil || false
은 false
이고 false || nil
은 nil
을 반환합니다. 누구든지 이것에 대한 설명이 있습니까?nil || 거짓과 거짓 || 루비에서 nil
답변
루비에서는 모든 것이 표현식이며 표현식은 그 안에 평가 된 마지막 값을 반환합니다.
두 예제 모두에 대해 ||
표현식의 왼쪽이 거짓 값으로 평가되므로 Ruby는 오른쪽을 계산하여 반환합니다.
설명은 정말 분명합니다. 감사합니다! – user1538814
||
은 평가 된 마지막 표현식의 결과를 리턴합니다. LHS를 평가하고 true
값을 찾으면 LHS를 얻습니다. 그렇지 않으면 RHS를 얻을 수 있습니다 (RHS가 무엇이든간에).
정말 좋은 설명이었습니다. 고마워요! – user1538814
다른 사람들이 지적한대로 ||
은 먼저 왼쪽의 표현식을 평가합니다. 그것이 "true"(false
또는 nil
이외의 것)이면, 그 값을 반환합니다. 그렇지 않으면, 오른쪽에있는 표현식을 평가하고 반환합니다 (그것이 무엇이든간에).
이렇게하면 ||
이 단지 부울 테스트 이외의 많은 용도로 유용합니다.
@now = options[:now] || Chronic.time_class.now
의미 : "는 options
해시가 :now
값을 포함하는 경우, 저장 @now
에 그렇지 않으면, Chronic.time_class.now
에 후퇴. chronic
보석에 대한 몇 가지 코드를 작성할 때 예를 들어, 난 그냥 그것을 다른 일을 사용 기본값 "으로 설정합니다. 나 자신의 프로그램에서 가능한 많은 응용 프로그램을 생각할 수 있다고 확신합니다.
&&
과 유사합니다. 먼저 왼쪽의 표현식을 평가하고 false
또는 nil
으로 평가하면 결과를 반환합니다. 그렇지 않으면, 오른쪽에있는 표현식을 평가하고 반환합니다 (그것이 무엇이든간에).
즉, &&
은 이고 또한은 부울 테스트 이외의 많은 기능에 유용합니다. 이 코드를 사용하여 두 줄의 코드를 하나로 묶을 수 있습니다. 예를 들면 :
do_something && do_something_else
(당신이 do_something
의 반환 값이 false
또는 nil
수 없을 것이라는 점을 알고있는 경우에만 작동하는지!)
또한 같은에 "가드"표현을 짜내 &&
을 사용할 수 있습니다 "지키는"그것이 무엇인지와 같은 라인 :
message && send_message(message)
가 대체 할 수있다 :
unless message.nil?
send_message(message)
end
나는 여전히 루비를 배우고있다. 그러나 이것은 정말로 도움이된다. – user1538814
- 1. 루비에서, 왜! nil return => true?
- 2. 루비 질문 - == nil 또는 nil?
- 3. Nil 대 List (Nil) for for recursion
- 4. self.navigationController == nil
- 5. NSInteger! = nil
- 6. 인터페이스 - NIL
- 7. facebook_session.user.email = nil?
- 8. 왜 (= (vector nil) (vec nil))가 false를 반환합니까?
- 9. iPhone SDK : "nil =="이 "== nil"과 다른 이유를 설명하십시오
- 10. JRuby : nil! = nil : 배열이 같더라도 RSpec 테스트가 실패합니다.
- 11. Ruby 문자열 "nil"을 nil로 설정합니다. NilClass nil (nil.inspect의 반대)
- 12. object == nil 또는 nil == 객체가 nil인지 확인하는 객체입니까?
- 13. XML에서 xsi : nil 사용
- 14. superview 및 parentviewcontroller nil
- 15. uiview getter nil
- 16. keyWindow = nil (iPad에만 해당)
- 17. _REQUIREDNAME 항상 nil
- 18. NSURL 다운로드 resumeData nil
- 19. NSSortDescriptor 및 nil 값
- 20. NSInvocation nil 인수
- 21. 'map'for nil : NilClass
- 22. ActiveRecord :: Base.new returns nil
- 23. NSMutableArray에 nil 추가
- 24. 변수 값 - nil?
- 25. NSFetchedResultsController가 nil 객체를 삽입하려고합니까?
- 26. - [UIImage CGImage] returns nil
- 27. 예기치 않은 nil 객체
- 28. Ruby 및 Nil 객체
- 29. iOS : SKPaymentTransactionStateRestored originalTransaction == nil
- 30. 레일에서 nil current_user 다루기
보너스 포인트는 왜 'nil || 거짓과 거짓 || nil'은 거짓으로 평가됩니다. – pguardiario
@pguardiario http://stackoverflow.com/questions/1840488/operator-precedence-for-and-in-ruby – x1a4