답변:
거의 동의어이지만 정답은 아닙니다. 다른 점이다 !
보다 높은 우선 순위가 not
더 원한다면, &&
그리고 ||
보다 높은 우선 순위로되어 and
하고 or
.
!
모든 연산자의 우선 순위가 가장 높고 가장 not
낮은 연산자 중 하나 는 Ruby 문서에서 전체 테이블을 찾을 수 있습니다 .
예를 들어 다음을 고려하십시오.
!true && false
=> false
not true && false
=> true
첫 번째 예에서는 우선 순위 !
가 가장 높 으므로 false && false
.
두 번째 예에서는 not
보다 우선 순위가 낮 true && false
으므로 false
에서 true && false
으로 "전환" 되었습니다 true
.
일반적인 지침은 !
특별한 이유가없는 한 고수해야한다는 것 not
입니다. !
Ruby에서는 대부분의 다른 언어와 동일하게 작동하며 not
.
unless
이 경우 사용할 수 있습니까?
unless
루비 세계에서는 실제로 선호되지 않습니다. 일반적인 합의는 !
대부분의 상황에서 잘 작동 할 때 방해가된다는 것 입니다. 좀 더 표현력이없는 경우가있을 거라고 확신하지만 분명하게 생각합니다.
unless
불리한 것에 동의하지 않습니다 . 우리가 합의에 가장 가까운 것은 그렇지 않다고 말합니다.
not
수 있는지에 대한 예를 공유하고 싶었습니다 . Python에서는 if 문을 더 쉽게 읽을 수 있도록 변수에 부울을 할당하는 경우가 있습니다. 이는 패턴 사용을 의미 할 수 있습니다 x = not y
. 여기서 y는 복잡한 것입니다. 루비는 x = !y
작동하지만 x = not y
얻는다 syntax error, unexpected tIDENTIFIER, expecting '('
. 우선 순위는 이것이 작동하려면 할당 op의 오른쪽 주위에 괄호가 필요함을 의미합니다 x = (not y)
.