我无法理解 Ruby 中的特征类或单例类的概念。我读到过很多文章说特征类是类的类。这对我来说毫无意义,因为对我来说,类的类是
我无法理解 特征类 或 单例类 。我读到过很多文章说特征类 是类的类 。这对我来说毫无意义,因为对我来说,类的类 Class
实际上是类的实例 Class
.
我不太明白的另一件事是以下陈述:类方法实际上是类特征类的实例方法。特征类可以通过以下方式访问:
YourClass = Class.new
class << YourClass
def class_method
end
end
但是,如果特征类确实是 YourClass 类(即 Class
),那么前面的代码片段难道不应该打开该类 Class
并向其添加实例方法, class_method
使得它的所有未来实例(即将来定义的任何常规类)都可以访问它吗?
我实际上觉得单例类与不一样 Class
。当你这样做时:
class MyClass
end
MyClass.singleton_class
你得到的 #<Class:MyClass>
结果与 MyClass.class => Class
是什么 #<Class:MyClass>
?这与命名空间无关,否则会有两个: Class::MyClass
...
我正在寻找特征类概念的简单且明确的解释,以澄清我的想法。