Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library _builtin > class Object > to_splat
to_splat -> Array
オブジェクトの Array への暗黙の変換が必要なときに内部で呼ばれます。 デフォルトでは定義されていません。`*'による配列展開の実体です。
説明のためここに記載してありますが、 このメソッドは実際には Object クラスには定義されていません。 必要に応じてサブクラスで定義すべきものです。
メソッド呼び出し時の引数や、 多重代入の右辺値に`*'をつけて配列変換を行ったときに内部で呼ばれます。
class Foo def to_ary [1,2,3] end def to_splat [4,5,6] end end a,b = *Foo.new p [a,b] #=> [4, 5] a,b = Foo.new p [a,b] #=> [1, 2] def doi(a,*b) p b end doi(*Foo.new) #=> [5, 6]
[SEE_ALSO] Object#to_ary, Object#to_a, Kernel.#Array