我想编写一个检查所有超类列表的方法(allSuperclass方法),如果其中一个具有特定名称的classVariable,则返回“ true”。如果它们都没有,它将返回false。
我该怎么做呢?
最佳答案
classVarNames
是一种返回类变量名的集合的方法。
例如,如果您将此方法添加到Behavior类中,则应该获得您所要求的功能:
superclassesHaveNoClassVar: name
^ self allSuperclasses noneSatisfy: [:class |
class classVarNames includes: name]
没什么特别的。只需取
allSuperclasses
并检查它们中的includes
中是否没有name
所需的变量classVarNames
。