Ruby中的or和||操作符有什么区别?还是只是偏好?


当前回答

如果其中一个操作数为真,则or和||都求值为真。只有当第一个操作数为假时,才计算第二个操作数。

与and一样,or和||之间的唯一区别是它们的优先级。

为了让生活更有趣,and和or具有相同的优先级,而&&的优先级高于||。

其他回答

输出false或true——>输出:false

输出假|| true——>打印:true

或者和||不一样。只使用||操作符代替or操作符。

这里有一些原因。:

Or运算符的优先级比||低。 Or的优先级比=赋值操作符低。 和和或具有相同的优先级,而&&的优先级高于||。

这是运算符优先级的问题。

||优先级高于或。

所以,在这两者之间,你有其他的操作符,包括三元(?:)和赋值(=),所以你选择哪一个会影响语句的结果。

这是一个ruby操作符优先级表。

请看这个问题中使用and/&&的另一个例子。

同时,要注意可能发生的一些糟糕的事情:

a = false || true  #=> true
a  #=> true

a = false or true  #=> true
a  #=> false

前两个语句的值都为true,但第二个语句将a设置为false,因为=优先级低于||,但高于or。

如果其中一个操作数为真,则or和||都求值为真。只有当第一个操作数为假时,才计算第二个操作数。

与and一样,or和||之间的唯一区别是它们的优先级。

为了让生活更有趣,and和or具有相同的优先级,而&&的优先级高于||。

只是补充一下mopoke的答案,这也是一个语义学的问题。或者被认为是一个很好的实践,因为它读起来比||要好得多。