Ruby 获取常量和子类
获取属于模块Ruby 获取常量和子类,ruby,class,module,ruby-1.9,Ruby,Class,Module,Ruby 1.9,获取属于模块a的常数的最短方法是什么?如果我做了A.constants,它将给出A常量的符号化名称数组,而不是A常量数组。我特别提出这个问题,因为对于祖先,它更简单:A.祖先返回其祖先的数组,而不是祖先的符号化名称数组 获取类B的直接子类数组的最短方法是什么 鉴于: 您可以在所有现有类中搜索子类: ObjectSpace.each_object(Class).select { |klass| klass.superclass == A } # => [A::B] ObjectSpace.
a
的常数的最短方法是什么?如果我做了A.constants
,它将给出A
常量的符号化名称数组,而不是A
常量数组。我特别提出这个问题,因为对于祖先
,它更简单:A.祖先
返回其祖先的数组,而不是祖先的符号化名称数组
B
的直接子类数组的最短方法是什么ObjectSpace.each_object(Class).select { |klass| klass.superclass == A }
# => [A::B]
ObjectSpace.each_object(Class).select { |klass| klass.superclass == A::B }
# => []
A.constants.map { |constant| A.const_get constant }
# => [A::B]
ObjectSpace.each_object(Class).select { |klass| klass.superclass == A }
# => [A::B]
ObjectSpace.each_object(Class).select { |klass| klass.superclass == A::B }
# => []