And和Or的运算符优先级

时间:2014-03-19 13:45:45

标签: ruby

假设我有以下代码行:return nil unless app && ip || device

如果没有括号,Ruby将如何解释优先级? (app && ip) || device?还是app && (ip || device)

还是其他一些方式?

谢谢!

1 个答案:

答案 0 :(得分:4)

这很简单 - 因为&&的优先级高于||,所以它将被解释为

  (app && ip) || device

我建议总是添加括号以便于阅读。

参见例如Rosettacode page on operator precedence for Ruby