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

となってしまいます。