【发布时间】:2011-02-21 01:03:09
【问题描述】:
我一直在阅读 Metaprogramming Ruby,对象模型就像是先有鸡还是先有蛋的困境。
在 Ruby 1.8 中,Object 类是 Class 的一个实例。 Module的超类是Object,是Class的一个实例。 Class 的超类是 Module,它是 Class 的一个实例(自引用)。说类 SomeClass; end 在某处定义; SomeClass 是 Class 的一个实例,但它的超类是 Object。为什么 Class 的实例有 Object 作为超类而不是 nil?
另外,如果 Object 要存在,那么 Class 必须存在,但 Module 必须存在,但 Module 要存在 Object 必须存在。这些类是如何创建的?
【问题讨论】:
标签: ruby