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