2014-07-23 1 views
-2

가독성이 높은 코드를 작성하려고 시도한 결과 ||&&의 동의어로 orand 연산자를 사용했습니다. , 지금 나는 orand에는 다른 신청이있는 이해에왔다. http://devblog.avdi.org/2010/08/02/using-and-and-or-in-ruby/IRB 콘솔 및 레일 응용 프로그램이 '또는'다르게 평가됩니다.

내 레일 응용 프로그램과 IRB 콘솔에서 다음 코드를 실행할 때 혼란스러운 점이 있습니다. IRB에서

:

var = false or true 
# => true 

내 레일 응용 프로그램에서 : 한마디로

var = false or true 
# => false 

이는 IRB의 실제 레일 응용 프로그램의 우선 순위가 같은 수준이없는 or처럼 보인다. 이것은 혼란스럽고 오해의 소지가 있습니다. 어떤 이유가 있을까요?

+2

실제 응용 프로그램에서 어떻게 확인 했습니까? –

+3

정확하지 않을 수 있습니다. – JTG

+1

그래, 방금 내 자신의 애플 리케이션에 체크,'var = false 또는 true '사실로 평가됩니다. – JTG

답변

5

결과를 잘못 해석했다고 생각합니다. 표현이 irb와 rails에서 해석되는 방식에는 차이가 없어야합니다. 당신이 할 경우 : var의 값이 반환 값 true입니다 false하고있다, 그 후에

(var = false) or true 

:

var = false or true 

이로 해석됩니다. irb는 표현식의 반환 값을 반환하므로 true이됩니다. 그리고 귀하의 레일 애플 리케이션에서 var의 값을 확인한다면, 그것은 false으로 평가되어야합니다.

+0

물론이 경우입니다. IRB를 잘못 해석했습니다. 고맙습니다. – Mikael