Han*_*sco 5 ruby boolean operator-precedence
我一直在研究运算符优先级,并向我解释了x =! 5返回false.我似乎无法再向自己解释原因.我知道=!是不是运营商所以后来x和5保持.这是否意味着Ruby不知道该怎么办?如果是这样ruby应该返回错误,因为x没有价值?Ruby是否停止在运算符上,然后赋值false为x?
x =! 5
=> false
Run Code Online (Sandbox Code Playgroud)
Aru*_*hit 36
这是因为x =! 5被解释为x = (!5)(!具有高于优先级=).在Ruby中每个对象是true除了nil和false.5有一个值,你使用运算符否定!.因此false,结果被分配给局部变量x.
! 称为逻辑NOT运算符 - 用于反转其操作数的逻辑状态.如果条件是true,则逻辑NOT运算符将生成false.