有什么区别or
和||
Ruby 中的运算符?
答案
这是操作员优先级的问题。
||
比优先级高or
。
因此,在两者之间,您还有其他运营商,包括三元(? :
)和作业(=
)因此,您选择哪一个可以影响语句的结果。
这是一个红宝石操作员优先表。
看这个问题对于另一个示例and
/&&
。
另外,请注意可能发生的一些讨厌的事情:
a = false || true #=> true
a #=> true
a = false or true #=> true
a #=> false
前两个陈述都评估为true
,但第二组a
到false
自从=
优先级低于||
但高于or
。