Ruby

ちょっと気になって・・

 class Foo
 end

 Foo = Class.new(Object)

とするのとでは、きっと同じ意味なんだろうと思うんだけど、じゃ後者の書き方でなにか役に立つこと(rubyが内部でなんやらしている関係を除いて)ってあるかな?
・・・とか考えたけど、なんにも思いつかなかった。
で、無名のクラスが作れるっていうことなのでつくってみたりして。

 a = Class.new
 
 > a
 => #<Class:0x2e672f4>

無名クラスの親を無名クラスにしたらどうなるん?

> a = Class.new(Class.new)
 => #<Class:0x2e6b390>
> obj = a.new
 => #<#<Class:0x2e6b390>:0x2e694c8>
> obj.class.superclass
 => #<Class:0x2e6b3b8>
> Foo = a
 => Foo
> obj
 => #<Foo:0x2e694c8>

へぇ・・・なんだか異世界な気分がした。