Ruby の固有クラスまたはシングルトン クラスの概念を理解するのに苦労しています。eigenclassは class の class であるとよく読みます。私にとって、クラスのクラスは実際にClass
はすべてのクラスが実際にはクラスのインスタンスであるため、意味がありませんClass
。
私がよく理解していないもう 1 つのことは、次のステートメントです。クラス メソッドは、実際にはクラス固有クラスのインスタンス メソッドです。固有クラスには次の方法でアクセスできます。
YourClass = Class.new
class << YourClass
def class_method
end
end
しかし、固有クラスが実際Class
にYourClass クラス (つまり将来)?Class
class_method
実際、シングルトンクラスは と同じではないと感じていClass
ます。あなたがするとき:
class MyClass
end
MyClass.singleton_class
#<Class:MyClass>
の出力とは異なるものを取得しますMyClass.class => Class
その#<Class:MyClass>
出力は何ですか?これは名前空間とは関係ありません。それ以外の場合は 2 つになります: Class::MyClass
...
私の考えを明確にするために、固有クラスの概念の単純で明確な説明を探しています。