私はthisの一般的な知識を持っていました。これは演算子優先順位表です。シフト演算子は、論理演算子(& & ||)よりも優先順位が高くなります。私はarr
は、アレイとパーティがnil
であった。このような状況を、持っていた:シフト演算子でルビ演算子の優先順位問題
arr << party && party[3]
私はこれをしたとき、最初は、私は党が党よりも皆無だった場合、[]が呼び出されることはありませんだろうと思いました。 < <が優先順位が高いので、もちろん、それは最初にこれをしようとします:
arr << party
しかし、何次に何が起こりますか?ルビーは、これを行うん:私はこの問題を解決するために)最高演算子を(使用
arr << party[3]
注:アレイ上
arr << (party && party[3])
通訳者やコンパイラがあなたの表現を理解できないと思われるときには常に括弧を使って優先するのが良い。言語(Rubyのような)はそれらをオプションにするかもしれませんが、それらを使用しないと奇妙な/予期しない振る舞いを引き起こす可能性があります。 –