[Ruby] Array を複数のパラメータとして受け取る方法

by tanabe on May 01, 2007

メモなので手抜き更新。

foo(a, b, c) というような複数の引数へ Array インスタンス [1, 2, 3] を一つずつ渡したいときは、こうやって渡せば OK。

a = [1,2,3]
foo(*a)

こんなかんじ。

irb(main):001:0> def foo(a,b,c)
irb(main):002:1>   p a,b,c
irb(main):003:1> end
irb(main):004:0> a = [1,2,3]
irb(main):005:0> foo *a
1
2
3
irb(main):006:0> foo a
ArgumentError: wrong number of arguments (1 for 3)
        from (irb):6:in `foo'
        from (irb):6