タグ付けされた質問 「eigenclass」


3
見た目がとても似ているのに、なぜeigenclassがself.classと同等ではないのですか?
どこかでメモを逃してしまったので、説明していただければ幸いです。 オブジェクトの固有クラスが異なるのはなぜself.classですか? class Foo def initialize(symbol) eigenclass = class << self self end eigenclass.class_eval do attr_accessor symbol end end end 固有クラスをclass.selfと同等にする私の一連のロジックはかなり単純です。 class << selfインスタンスメソッドではなく、クラスメソッドを宣言する方法です。へのショートカットdef Foo.barです。 したがって、クラスオブジェクトへの参照内では、返されるのselfはと同じである必要がありますself.class。これは、クラスのメソッド/属性の定義ににclass << self設定さselfれるFoo.classためです。 私はただ混乱していますか?それとも、これはRubyメタプログラミングの卑劣なトリックですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.