smalltalk - 如何检查父类(super class)之一是否包含具有特定名称的类变量?

标签 smalltalk pharo squeak

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

最佳答案

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

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

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

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

关于smalltalk - 如何检查父类(super class)之一是否包含具有特定名称的类变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18422809/

相关文章:

smalltalk - <primitive : xyz> statement do in a method declaration? 是什么意思

graphics - 在 AthensTutorial Canvas 来自哪里?

character-encoding - Squeak Monticello 字符编码

javascript - 如何在海边应用程序中嵌入谷歌分析脚本(新版本)

java - asm/C/Python/Perl/Lisp/Scheme 程序员正在寻找新的东西来学习

python - Speedwise,Pharo 与 Python3 相比如何?

message - 如何告诉对象执行消息

smalltalk - 在 smalltalk 中对消息参数强制执行某些值的最佳方法是什么?

pharo - 如何在 Ubuntu 上为 Pharo 启用鼠标中键?

smalltalk - Smalltalk 中的变量类型