一見したところ、 (read: inherits from )BasicObject
を「敷設」するだけだと思いましたClass
Class
BasicObject
Class.ancestors #=> [Class, Module, Object, Kernel, BasicObject]
Module.ancestors #=> [Module, Object, Kernel, BasicObject]
Object.ancestors #=> [Object, Kernel, BasicObject]
BasicObject.ancestors #=>[BasicObject]
しかし、物事は突然非常に奇妙になりました。
Class.class #=> Class
Module.class #=> Class
Object.class #=> Class
BasicObject.class #=> Class
「あはは!」と思いましClass
たBasicObject = Class.new
。Class
しかし、これらのインスタンスはすべて、最下部にある階層にあることを思い出しましたClass < Module < Object < Kernel < BasicObject
。
これらのクラスはそれぞれ同時にオブジェクトです。次に、システムは非常に循環的に見えます。階層はどこから始まり、Ruby の抽象的な構造を形成するためにどのように融合するのでしょうか?