문제

루비가 왜 주는지 궁금합니다 and, or 보다 우선권이 적습니다 &&, || , 그리고 운영자를 할당 하시겠습니까? 이유가 있습니까?

도움이 되었습니까?

해결책

내 생각에 그것은 Perl의 직접 이월입니다. 연산자 or 그리고 and 특정 상황에 대해 PERL 5에 나중에 첨가되었다.

예를 들어, Perl에서 여기에서 우리는 || 우리가 쓸 수 있도록 우선 순위가 낮았습니다.

try to perform big long hairy complicated action     || die ;

그리고 확인하십시오 || 행동의 일부를 고발하지 않을 것입니다. Perl 5가 소개되었습니다 or, 새로운 버전 || 정확히이 목적으로 우선 순위가 낮습니다.

루비의 예제를 사용할 수있는 예입니다 or 하지만 ||:

value = possibly_false or raise "foo"

사용한 경우 ||, 구문 오류입니다.

다른 팁

차이는 우선입니다. ||, && 보다 우선 순위가 높습니다 =, 하지만 and, or 더 낮습니다. 할 수있는 동안 :

a = nil || 0

당신은해야 할 것입니다 :

a = (nil or 0)

같은 효과를 얻으려면. 당신이하는 경우 :

a = nil or 0

표현의 결과는 여전히 0이지만 값은 nil입니다.

그들은 때때로 그렇듯이 피연산자가 괄호 안에 싸울 필요가 없도록 매우 낮은 우선 순위를 가지고 있습니다. && 그리고 ||.

특히 가독성에 관심이있는 경우 운영자의 우선 순위를 제어 할 수있는 경우 가끔 유용합니다. 조건부 진술의 추가 괄호는 때때로 실제 논리를 가릴 수 있습니다.

그러나 솔직히 말해서, 루비가 부울 운영자 우선 순위 수준을 가지고있는 이유는 대부분 Matz가 Ruby를 작성하기 전에 Perl 프로그래머라는 사실에서 비롯된 것으로 생각합니다.

아이디어는이 아이디어가 과제 연산자 아래로 이들을 수있는 것으로 생각되므로 과제를 사용하여 논리 테스트를 쓸 수 있지만 Parens가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top