来自文档:
http://ruby-doc.org/core-2.2.0/TrueClass.html#method-i-7C
true | puts("or") true || puts("logical or") # produces: or
>你能解释“单管”何时有用?
>有什么区别?
(仅在TrueClass上下文中(不是Array或Fixnum上下文)
解决方法
当您不需要急切评估或声明时,它非常有用.
例如,如果你有一些方法,它们会做一些有用的事情并且返回true / false,并且只有当这些方法中的任何一个返回true时才应该调用另一个方法,使用|:是有用的.
def action1 # do something,returns true/false end def action2 # do something,returns true/false end def result_action # do something end result_action if action1 | action2
如果你使用逻辑||相反,如果action1返回true,则不会调用action2(尽管会调用result_action)