Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Rubyでは、次のようなコードがあります
foo { |x, y| puts y }
コンパイラー/インタープリターが未使用の変数Xについて警告し続けるので、xを「*」に置き換えてコンパイラーが文句を言うのをやめました。(なぜ私が*が最良の選択であると決めたのか分かりません...それはちょうど起こった...)
foo { |*, y| puts y }
これは正確に何をしますか?そして、副作用はありますか?
このコンテキストでのアスタリスクは、「スプラット」演算子と呼ばれます。これは、その場所に複数のパラメーターを渡すことができ、ブロックがそれらを配列として表示することを意味します。
ただし、その後に変数名がないと、どのように、またはなぜ機能するのかわかりません(例foo { |*x, y| puts y })。これは、ブロックが出力する最後のパラメーターを除くすべてのパラメーターを無視することを意味していると思います。
foo { |*x, y| puts y }