这今天我花了相当长的一段时间,我发现finaly的原因,但仍然没有得到逻辑false或true!= true或false!= true ||假
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或true; p x#=> false',对吗?这是分配发生时让你感到困惑的时刻。简而言之,赋值只是另一个运算符,它在*'或'之前*和*'||'之后被处理。通常你需要'||',但是'或'的语义在时间上仍然很有用。 –