3
在Ruby中,我有類似以下星號塊參數列表
foo { |x, y| puts y }
代碼,因爲編譯器/解釋器不斷警告我網站未使用VAR X,我換成X用「*」和編譯器停止抱怨。 (我不知道爲什麼我決定*是最好的選擇......只是發生了......)
foo { |*, y| puts y }
這是幹什麼的?有沒有副作用?
在Ruby中,我有類似以下星號塊參數列表
foo { |x, y| puts y }
代碼,因爲編譯器/解釋器不斷警告我網站未使用VAR X,我換成X用「*」和編譯器停止抱怨。 (我不知道爲什麼我決定*是最好的選擇......只是發生了......)
foo { |*, y| puts y }
這是幹什麼的?有沒有副作用?
在此上下文中的星號稱爲「splat」運算符。這意味着您可以在它的位置傳遞多個參數,並且該塊會將它們看作一個數組。
雖然(例如foo { |*x, y| puts y }
),但我不確定它如何或爲什麼在它後面沒有變量名稱的情況下工作。我猜想這意味着該塊將忽略除最後一個參數外的所有參數,並將其打印出來。