我刚刚在rails应用程序中遇到了一个令人不安的错误,我发现问题是!0是错误的.我在假设,那应该是真的.
我的印象是!运算符将反转整数中的位,因此0将变为全1,因此将为真.
事实并非如此,为什么?
还要注意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
Run Code Online (Sandbox Code Playgroud)
Ant*_*t P 14
因为0不等同于false.0是一个整数值,所有整数的布尔值是true.评估的唯一事情false是nil,明确地,false.
鉴于0是true,!0是的,直观的,false.
!不是一个有点明智的运营商,这是合乎逻辑的NOT.也许你的意思~0?
| 归档时间: |
|
| 查看次数: |
2239 次 |
| 最近记录: |