2つのArrayからHashを作る方法に出てくる*の意味は何でしょうか?
merge two arrays into a hash - Ruby Forumを参考に2つのArrayからHashを作る方法を書きました。
keys = %i(a b c)
values = [1,2,3]
Hash[*keys.zip(values).flatten] #=> {:a=>1, :b=>2, :c=>3}
この場面に出てくる*
の意味はなんでしょうか?
p *keys
とした場合
:a
:b
:c
と出力されてしまいますし、RubyMineのブレイクポイントで確認しようとすると、
0> *keys
=> /Users/shingo/Documents/sample/hoge.rb:3: syntax error, unexpected '.', expecting '='
(*keys).inspect
となってしまいます。