我對this有一般認識。它是運營商的優先級圖表。移位運算符優先於邏輯運算符(& & ||)。我有這樣的情況,其中arr
是一個數組,黨是nil
:移位運算符的紅寶石運算符優先級問題
arr << party && party[3]
現在開始我做這個,我想如果當事人是不是黨[]零永遠不會被調用時。當然,由於< <具有更高的優先級嘗試這首:
arr << party
但接下來會發生什麼?請問紅寶石那麼這樣做:
arr << party[3]
請注意,我用的最高經營者()來解決問題:
arr << (party && party[3])
作爲一般的做法是很好用括號來強制改變優先級時,你想到一個解釋器或編譯器將無法理解你的表達。一種語言(如Ruby)可能會使它們成爲可選項,但不使用它們會導致奇怪/意外的行爲。 –