スター付き変数はどのようなもの*arr
ですか?
*arr = "sayuj"
=> ["sayuj"]
*arr = *%w{i am happy}
=> ["i", "am", "happy"]
*arr = %w{i am happy}
=> [["i", "am", "happy"]]
これはスプラット演算子と呼ばれ、要素を配列に収集する(バインドされていない変数に適用される)か、配列を個々の要素に分割する(配列に適用される)ことができます。
def bar(*a)
a[1]
end
bar(1,2,3)
=> 2
def foo(a,b,c)
b
end
foo(*[1,2,3])
=> 2
これは少し単純化されすぎています。詳細については、リンクされた投稿をお読みください。