到现在为止不知道怎么区分类和对象这个东西!
一个类的 eigenclass 的超类是这个类的超类的 eigenclass
BasicObject.singleton_class.superclass
=> Class
很奇怪!
String.methods == String.class.instance_methods
=> false
因为 String 是 Ruby 语言已经定义好的类,我认为可能是在定义 String 这个类的时候 Ruby 语言本身就为它定义了的特别的方法,比如try_convert
,其实 Array 也有这个方法,但是自定义的类就没有这个方法,所以我觉得这就有可能是导致结果为 false 的原因。
String.methods == eigenclass.instance_methods => true 这个你在文章中也说了,在创建类的同时就已经创建好了 eigenclass.
我认为每个对象都应该有自己的 eigenclass