调用“self class”有两个主要原因:要么是为了做用户空间的事情,比如调用静态方法、创建新对象或获取常量。或者是为了反射(reflection)自己。我很想知道它们发生的频率。
查询当前加载的 Pharo 代码库的最佳方式是什么?是否有内置工具,or should I use SOUL?
最佳答案
打开浏览器,转到对象,选择#class 并点击“发件人”将显示#class 的所有发件人。不过,这对于回答“它们各自发生的频率”并不是很好。
以更易于操作的形式获取相同调用站点的方法是使用 Object allCallsOn: #class
,它提供了一组发送者。也许运行一些#select: 调用来找出一些数字?
或者使用 Refactoring Browser:它有类似 FinderTool 的东西可以基于 AST 结构进行搜索。
编辑:正如 mathk 指出的那样,有时 senders-of 不会工作,因为特殊消息或内联消息。有一个有趣的 discussion在有关该主题的 vm-dev 列表上。
关于smalltalk - "self class"如何使用?/Pharo图像如何查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3804322/