乍一看,我以为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 的抽象结构?