特異クラスのsuperclass
特異クラスのスーパークラスのスーパークラスは,特異クラスのスーパークラス自身?
irb:0> class Object; def metaclass; class << self; self; end; end; end => nil irb:0> metaclass => #<Class:#<Object:0x38950>> irb:0> p self main => nil irb:0> metaclass.superclass => #<Class:#<Class:#<Object:0x38950>>> irb:0> metaclass.superclass.superclass => #<Class:#<Class:#<Object:0x38950>>> irb:0> metaclass.superclass.superclass.superclass => #<Class:#<Class:#<Object:0x38950>>>
あれ?あるオブジェクトの特異クラスのスーパークラスは,そのオブジェクトのクラスになるんじゃなかったっけ?なんでクラスのメタクラスになってるんだろう.
irb:0> class Foo; end => nil irb:0> Foo.metaclass => #<Class:Foo> irb:0> Foo.metaclass.superclass => #<Class:Class> irb:0> Foo.metaclass.superclass.superclass => #<Class:Class> irb:0> Foo.class.metaclass => #<Class:Class>
よくわからん.