0
私の質問はthis questionとは異なることに注意してください。クラスのすべての子孫(子孫の子孫を含む)を求めているからです。`self.inherited`を使ってRubyでクラスのすべての子孫を取得するには?
また、私はそれがすべてのクラスを取得し、子孫のためのフィルタリングをより速く道だから
class Animal
def self.inherited(subclass)
@descendants = []
@descendants << subclass
end
def self.descendants
puts @descendants
end
end
のようなものを使用することを好むだろう。
レイジーは '@descendants || = []インスタンス化し'と設定が完了しているを書くことができます。しかし、これは子孫の子孫のための箱からは機能しません。リンクされた答えは、ツリー全体(子孫の子孫)のトリックを返します。 – mudasobwa