Ruby 中的布尔表达式 - or 和 || 之间的区别[复制]

Posted

技术标签:

【中文标题】Ruby 中的布尔表达式 - or 和 || 之间的区别[复制]【英文标题】:Boolean expression in Ruby - difference betwen or and || [duplicate] 【发布时间】:2013-10-08 21:32:07 【问题描述】:

有人可以向我解释一下以下两行代码的区别吗?

puts false or true or false or false or false

我不明白为什么该行的执行结果假设与以下不同:

puts false || true || false || false || false

如果有人能向我解释一下,我将不胜感激。

【问题讨论】:

您想要多少个答案?去这里***.com/search?q=%5Bruby%5D+%22%7C%7C%22+%22or%22 【参考方案1】:

Ruby 从 Perl 继承了一些控制流。所以在 Ruby 中,andor 用于控制流,&&|| 是布尔运算符。这也意味着andor 的优先级高于&&||

例如:

and 的用法如下:

 (true) and puts `true`

相当于

if true then
  puts "true"
end

&& 应该像这样使用:

true && false

这是false

【讨论】:

【参考方案2】:
p false or true #=> false => same as  (p false) or true
p false || true #=> true  => same as  p (false or true)

【讨论】:

以上是关于Ruby 中的布尔表达式 - or 和 || 之间的区别[复制]的主要内容,如果未能解决你的问题,请参考以下文章

Oracle Or子句

ruby 布尔运算符或 ||差异[重复]

Oracle Or子句

sed正则表达式中的布尔OR

为啥`return a or b`是Ruby中的空值表达式错误?

2021-06-03:布尔运算。给定一个布尔表达式和一个期望的布尔结果 result,布尔表达式由 0 (false)1 (true)& (AND) | (OR) 和 ^ (XOR) 符(代码