【发布时间】:2010-12-08 02:16:57
【问题描述】:
就是这样,我想看看继承固定类的类是什么。在 RUBY 中有这样的方法吗?
Aptana 提供了一个选项来显示这一点,但是有什么方法吗?
谢谢
【问题讨论】:
标签: ruby hierarchy class-hierarchy
就是这样,我想看看继承固定类的类是什么。在 RUBY 中有这样的方法吗?
Aptana 提供了一个选项来显示这一点,但是有什么方法吗?
谢谢
【问题讨论】:
标签: ruby hierarchy class-hierarchy
您是要查看一个类的所有祖先还是后代?对于祖先,使用:
Class.ancestors
但是,对于后代来说,没有可比的“开箱即用”方法。您可以使用 ObjectSpace,如下所示,但它很慢并且可能无法跨 Ruby 实现移植:
ObjectSpace.each_object(Class) do |klass|
p klass if klass < StandardError
end
编辑:
也可以使用Class#inherited 挂钩来跟踪子类化。但是,这不会捕获在定义跟踪功能之前创建的任何子类,因此它可能不适合您的用例。但是,如果您需要在应用程序中定义的类上以编程方式使用该信息,那么这可能是可行的方法。
【讨论】:
例子:
class Foo
end
class Bar < Foo
end
Bar.ancestors # => [Bar, Foo, Object, Kernel]
【讨论】: