多重代入、暗黙の型変換

to_aryメソッドが定義されてれば、Arrayじゃなくても多重代入っぽいことが出来た。

class Foo
  def to_ary
    [100, 200]
  end
end

foo = Foo.new
a, b = foo
p a #=> 100
p b #=> 200

下の書き方はアレな感じだ。

c = foo
p c #=>#<Foo:0xb7cb95a0>

d, = foo
p d # => 100