【发布时间】:2019-11-08 15:32:24
【问题描述】:
BasicObject,据我所知,是 Ruby 中所有其他类的父类。然而,直到在层次结构的更底层,Class 类才被实际定义。因此,我很难理解BasicObject 是如何成为一个类的。
这里的区别仅仅是抽象的、面向对象意义上的 ruby Class 与实际上是 Class 实例的类之间的区别吗?或者层次结构实际上是以BasicObject实际上是Class的一个实例的方式设置的?我很确定不是这样的。
如果 Ruby 中的“类”一词有两种含义,我觉得我缺乏讨论这两种类型的语言。如果确实是这样,我还能称一个不是Class 实例的类吗?
【问题讨论】:
-
想要更困惑?
Class的超类是Module但Module的类是Class所以Module是Module和Class就像Class是 @9876543345@ 和 @9876 @。但是虽然Module是Class类的一个实例,但你不能拥有Module类的实例。 Docs showing class Diagram 这都是通过匿名元类(singleton或eigen)处理的,所以BasicObject是所有类的父类BasicObject的特征类是Class例如BasicObject.singleton_class #> <Class:BasicObject> -
您的问题令人困惑。 1) 在标题中您询问不从
Class继承的类,在正文中,您询问不是Class实例的类。这是两个完全不同的东西。你问的是哪一个? 2) 有 no 类继承自Class并且有 no 类不是Class的实例,所以不管这两个问题中的哪一个你实际上意思是,这很难回答,因为你没有给出任何具体的例子。