레일 애플리케이션에 if 문이 있습니다. 기본적인 "if true and false"체크를해야합니다. 표현식은 다음과 같이 정의됩니다.루비 : '&&! (expr)'이 아닌 경우 '와'는 왜 작동합니까?
ActiveRecord::Base.connection.tables.include? 'settings' && !Settings.setting_is_set?('defaults_set')
if를 if로 설정하면 if가 트리거되지 않습니다. 콘솔에서 그 식을 실행하면 나는 틀린 값을 얻습니다. 내가 읽을 수있는 표현을 수정하면 이제
:
ActiveRecord::Base.connection.tables.include? 'settings' and not Settings.setting_is_set?('defaults_set')
예상대로 그것은 true를 반환하고,이 블록의 실행합니다.
왜 'expression & &! expression'이 'expression and not expression'처럼 작동하지 않는 이유는 무엇입니까? 내 이해는 & &이고! 거의와 직접적으로 일치하지 않아야한다.
무엇이 여기에 있습니까?
이것은 주로 연산자 우선 순위 때문입니다. 저는 PHP와 파이썬에서이 점을 분명히하고 있습니다 만, Ruby는 아닙니다. 아마 Ruby를 잘 아는 사람이라면 Ruby에서 어떻게 작동하는지 설명 할 것입니다. – JAL
이것은 http://StackOverflow.Com/questions/2083112/ –