Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library _builtin > class Object > to_splat

instance method 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