Fly*_*FoX 1 ruby boolean-logic
> test = false and true
=> false
> test
=> false
> test = true and false #this is the point I don't understand!
=> false
> test
=> true
Run Code Online (Sandbox Code Playgroud)
为什么ruby会以这种方式运行?如何正确使用它以避免遇到此问题?
Mar*_*eed 10
优先级. test = true and false意思是:
(test = true) and false
Run Code Online (Sandbox Code Playgroud)
不是这个:
test = (true and false)
Run Code Online (Sandbox Code Playgroud)
使用如上面括号,或&&代替and,如果你想分配给放在最后:
test = true && false
Run Code Online (Sandbox Code Playgroud)