Ruby中的布尔表达式 - 和|和|之间的区别

时间:2013-10-02 13:22:12

标签: ruby boolean

有人可以向我解释以下两行代码的不同之处吗?

puts false or true or false or false or false

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

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

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

2 个答案:

答案 0 :(得分:2)

p false or true #=> false => same as  (p false) or true
p false || true #=> true  => same as  p (false or true)

答案 1 :(得分:0)

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

例如:

and的使用方式如下:

 (true) and puts `true`

相当于

if true then
  puts "true"
end

&&应该像:

一样使用
true && false

false