重複の可能性:
Rubyでこの文字列に対して*演算子は何をしているのか
おそらく他の場所でその答えがありますが、私はそれを見つける方法がわかりません...
私が正しければ、*
は、関数定義で使用される場合、複数のパラメーターを意味します。
def hero(name, *super_powers)
しかし、*
次のようなコードで実行します:
Hash[*[[:first_name, 'Shane'], [:last_name, 'Harvie']].flatten] # => {:first_name=>"Shane", :last_name=>"Harvie"}
可変長引数リスト、アスタリスク演算子
メソッドの最後のパラメーターの前にアスタリスク(*)を付けることができます。これは、「スプラット」演算子と呼ばれることもあります。これは、より多くのパラメーターが関数に渡される可能性があることを示しています。これらのパラメーターが収集され、配列が作成されます。
アスタリスク演算子は、メソッド呼び出しでArray引数の前に置くこともできます。この場合、配列は展開され、値はコンマで区切られているかのように渡されます。