2012-04-20 4 views
1
> test = false and true 
=> false 
> test 
=> false 
> test = true and false #this is the point I don't understand! 
=> false 
> test 
=> true 

왜 이런 방식으로 루비가 작동하고 올바르게이 문제를 해결하지 못합니까?루비의 부울 논리 '참 및 거짓 == true'

답변

10

우선 순위. GitHub의에서

test = true && false 
+3

:

(test = true) and false 

없는이 : 당신이 할당이 지난 올하려는 경우

test = (true and false) 

사용은 위와 같이 괄호, 또는 대신 and&&test = true and false이 의미 루비 스타일 가이드 : '와 and or 키워드는 금지되어 있습니다. 그만한 가치는 없습니다. 항상 &&와 ||를 사용하십시오. 대신. – gracchus

+0

고마워,이 사람은 정말로 나를 오늘 잡았다 ... 이상한 언어 디자인 선택 ... – Jason

+0

Perl. 처음에는'&&'와'||'만있었습니다. 그러나 이것들은 C (논리적 인 부식물로서)와 쉘 (성공/실패를 다루기 위해)과 같이 사용되었습니다. 후자의 경우, 우선 순위는'my @info = stat ($ file) || 목록 컨텍스트 대신 스칼라에서'stat'를 호출하여 "오류" "죽습니다. 그 두통을 해결하기 위해 우선 순위가''/''또는''/ not ''가 도입되었지만 새로운 것을 주었고 Ruby는 펄에서 얻은 나머지 것들과 함께 바로 빌렸다. –

관련 문제