【发布时间】:2014-02-17 06:39:51
【问题描述】:
今天弄了好久,终于找到原因了,但还是不明白逻辑
x = (complex expression evaluating to false) or (complex expression evaluating to true)
x => false
很奇怪……经过实验发现
false or true => false
true or false => true
false || true => true
true || false => true
我想我在代码中的数百个地方都使用了“或”运算符,老实说,我不再相信“或”了......
有人可以解释一下“逻辑”吗?
【问题讨论】:
-
您的第二个块并不完全正确。你实际上有类似
x = false or true; p x # => false的东西,对吧?当分配发生时,你会感到困惑。简而言之,赋值只是另一个运算符,它在 beforeor和 after||处理。通常你想要||,但or的语义有时仍然有用。
标签: ruby