結論
rubyでandとor(できればnotなんかも)は使ってはいけない。理由
論理演算子を使った式を見て頂きたい。irb> true || true && falseこれは想定通り。では
=> true
and
とor
を使った場合はどうか。irb> true or true and falseぐはー。結果が違う。
=> false
なぜなら、
&&
と||
には適切な優先順位が付けられているが、and
とor
は同じ優先順位(すなわち出現順優先)である。rubyの公式ページの演算子式にはまるで、and
と&&
が、あるいはor
と||
が同等であるような書き方がしてあるが、これはひどい。