以下のような配列があったとする。
ary = ['a', 'b'] hoge = ['c','d']
普通に push すると、多次元配列になる。
ary.push(hoge) => ["a", "b", ["c", "d"]]
*
をつけると、引数として渡された配列が展開されて push できる。(splat展開と呼ぶ)
ary.push(*hoge) => ["a", "b", "c", "d"]
ちなみに、多次元配列はflatten
で一次元配列にできる。
["a", "b", ["c", "d"]].flatten => ["a", "b", "c", "d"]
Array#flatten (Ruby 2.7.0 リファレンスマニュアル)
参考
プロを目指す人のためのRuby入門 4.7.6