0
獲取屬於模塊
A
的常量的最短途徑是什麼?如果我做A.constants
,它給出了一個A
常量的符號名稱數組,而不是A
的常量數組。我特別要求這樣做,因爲ancestors
,它更直接:A.ancestors
給出其祖先的數組,而不是祖先的符號名稱的數組。獲取常量和子類獲得
B
類的直接子類數組的最短途徑是什麼?
獲取屬於模塊A
的常量的最短途徑是什麼?如果我做A.constants
,它給出了一個A
常量的符號名稱數組,而不是A
的常量數組。我特別要求這樣做,因爲ancestors
,它更直接:A.ancestors
給出其祖先的數組,而不是祖先的符號名稱的數組。獲取常量和子類
獲得B
類的直接子類數組的最短途徑是什麼?
考慮:
class A; end
class A::B < A; end
使用const_get
通過符號來訪問模塊的常量:
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 }
# => []