Ruby TrueClass单管道

来自文档: 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)

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...