我用于 Ruby 运算符的参考是http://phrogz.net/programmingruby/language.html#table_18.4根据这个参考,以及我见过的其他参考,相等运算符优先于逻辑 AND ( &&
,而不是 Ruby and
)。
我有以下内容:
foo = nil
foo < 5 # NoMethodError: undefined method `<' for nil:NilClass
要检查foo
我们这样做:
foo && (foo < 5) # Note the parenthesis
但这有效:
foo && foo < 5 # why does this work?
由于运算符优先级,foo < 5
应该首先发生,导致在 AND 甚至可以评估之前出现错误。我错过了什么吗?