呼び出し側と受け取り側のアスタリスク

呼び出し側のアスタリスクは配列を展開しますが、受け取り側のアスタリスクは残りの引数を配列化します。

def rubyco(a, b, c, *d)
    p a
    p b
    p c
    p d
end

a = [100, 200, 300]
rubyco(0, 1, *a)

実行結果です。0, 1, 100, 200, 300が渡されるので、最後の200, 300が配列として扱われます。

0
1
100
[200, 300]