有人可以向我解释以下两行代码的不同之处吗?
puts false or true or false or false or false
我不明白为什么执行该行的结果假设不同:
puts false || true || false || false || false
如果有人能向我解释,我将不胜感激。
答案 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中and
和or
用于控制流,&&
和||
是布尔运算符。这也意味着and
和or
的优先级高于&&
和||
例如:
and
的使用方式如下:
(true) and puts `true`
相当于
if true then
puts "true"
end
和&&
应该像:
true && false
是false
。