Rails アプリケーションの厄介なバグを乗り越えたところ、!0 が false であることが問題であることがわかりました。私はそれが真実であるべきだと思っていました。
という印象を受けました!演算子は整数のビットを逆にするため、0 はすべて 1 になり、したがって true になります。
そうではありません、なぜですか?
Railsコンソールからも注意してください:
1.9.3p286 :002 > !0
=> false
1.9.3p286 :003 > 0
=> 0
1.9.3p286 :004 > !1
=> false
1.9.3p286 :005 > !!0
=> true
1.9.3p286 :006 > !0
=> false
1.9.3p286 :007 > !23
=> false