Rubyクラスが定義されたときに教えてくれるようなコードを書くことはできますか?
1 に答える
2
はい!
class Object
def self.inherited(base)
puts "#{base} inherited from object"
end
end
class Animal
end
class Cat < Animal
end
上記のコードを実行すると、次のように出力されます。
Animal inherited from object
Cat inherited from object
基本的に、self.inherited
定義されているクラスから継承するクラスが定義されるたびに、コールバックがトリガーされます。それを着てObject
、それはどんなクラスでもあります!(ただし、今は思いつかない特別なケースの例外がいくつかあるかもしれません)。
これを行うことは可能ですが (Ruby が言語としていかに優れているかという理由で)、これを行うことが賢明であるかどうか、特に本番環境で使用する予定のコードでは、私には確信が持てません。 . まあ、実際、私は確信しています。それは悪い考えです。
于 2013-02-23T14:34:17.593 に答える