not
と は同義語ですか!
、それとも異なる評価をされますか?
ベストアンサー1
これらはほぼ同義ですが、完全に同義ではありません。違いは、 がよりも!
優先順位が高いのとnot
同様に&&
、が||
や よりも優先順位が高いことです。and
or
!
全ての演算子の中で最も優先順位が高く、not
最も低い演算子の1つです。Rubyドキュメントの完全な表。
例として、次のことを考慮してください。
!true && false
=> false
not true && false
=> true
最初の例で!
は、最高優先順位は なので、実質的には と言っていることになりますfalse && false
。2
番目の例では、のnot
優先順位は よりも低いので、 がからにtrue && false
「切り替え」られました。false
true && false
true
!
一般的なガイドラインとしては、 を使用する特別な理由がない限り、に固執する必要があるようですnot
。Ruby!
では、 は他のほとんどの言語と同じように動作し、 よりも「驚きが少ない」ですnot
。