我已经习惯使用Ruby或运算符||
:
false || true
#=> true
false || false
#=> false
但是我也注意到你可以使用单一管道|
:
false | true
#=> true
false | false
#=> false
除了单个管道|
作为Fixnum上的按位OR运算符和惯例,首选||
优于|
之外,还有其他原因吗?
答案 0 :(得分:3)
true
和false
分别是TrueClass
和FalseClass
的实例。主要区别在于||
是ruby运算符,而|
是TrueClass
和FalseClass
的方法。
或 - 返回true。由于anObject是方法调用的参数,因此始终对其进行求值; 在这种情况下没有短路评估。
使用它,例如以简写方式转换为布尔值:
val = 5
puts (true & val)
#⇒ true
并且,因为操作数始终被评估,所以在链中:
(true | myFunc(...)) && ...