私が 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 が評価される前にエラーが発生します。何か不足していますか?