我想编写一个检查所有超类列表的方法(allSuperclass方法),如果其中一个具有特定名称的classVariable,则返回“ true”。如果它们都没有,它将返回false。
我该怎么做呢?

最佳答案

classVarNames是一种返回类变量名的集合的方法。

例如,如果您将此方法添加到Behavior类中,则应该获得您所要求的功能:

 superclassesHaveNoClassVar: name
    ^ self allSuperclasses noneSatisfy: [:class |
        class classVarNames includes: name]


没什么特别的。只需取allSuperclasses并检查它们中的includes中是否没有name所需的变量classVarNames

10-05 20:55