【Ruby】Goldリベンジ今度こそ2
可変長引数のプリント
またひとつ間違いがありました。可変長引数のメソッド内部での受け取り方について。
def foo(*aaa) p *aaa #=>[1, 2, 3] end foo [1, 2, 3] #=>[1, 2, 3]
可変長引数の場合、引数の受け皿としてブランクな配列があるイメージでしょうか。たとえば上の例だと引数として配列を指定しています。てっきり配列がそのままfooに渡されると思っていました。しかしそうではなく配列を受け皿の配列に入れたもの、すなわち[[1, 2, 3]]がメソッドに渡されます。
出力結果が[1, 2, 3]にするにはpに何を渡せばいいかとの出題だったので、配列aaaの展開*aaaをわたせばOK。aaaそのものを渡すと[[1, 2, 3]]が出力されてしまいます。