ruby布尔运算符或|| 区别

sur*_*ajz 6 ruby

可能重复:
Ruby:||之间的区别 和'或'

在红宝石中,不是'或'和'||' 同一件事情?我执行代码时会得到不同的结果.

line =""
if (line.start_with? "[" || line.strip.empty?)
  puts "yes"
end




line =""
if (line.start_with? "[" or line.strip.empty?)
  puts "yes"
end
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 9

不,这两个运营商具有相同的效果,但优先级不同.

||运营商具有很高的优先级,所以它结合非常紧密的前值.该or经营者具有非常低的优先级,因此它比其他运营商结合不太紧密.

拥有两个版本的原因正是一个具有高优先级而另一个具有低优先级,因为这很方便.