我的问题可能是非常基本的和愚蠢的,但我很困惑为什么输出是这样的。
MyClass = Class.new String
MyClass.ancestors
=> [MyClass, String, ..]
AnotherClass = Class.new MyClass
=> AnotherClass
AnotherClass.ancestors
=> [AnotherClass, MyClass, String, ..]
在上面的代码中,我创建了一个名为 MyClass 的新类实例,并将对象(ruby 中的所有内容都是一个对象)'String' 作为参数传递。为什么“字符串”出现在 MyClass 的祖先列表中。我没有从 String 继承 MyClass ,但这就是 ruby 似乎正在做的事情。它确实可以用作复制构造函数,但为什么要继承?