2

调用“self class”有两个主要原因:要么是为了做用户空间的事情,比如调用静态方法、创建新对象或获取常量。或者是为了反省自己。我很想知道他们每个人发生的频率。

查询当前加载的 Pharo 代码库的最佳方法是什么?是否有内置工具,或者我应该使用 SOUL?

4

3 回答 3

3

打开浏览器,转到对象,选择#class 并点击“发件人”将显示#class 的所有发件人。但是,这对于回答“它们中的每一个出现的频率”并不是很好。

以更易于操作的形式获取相同呼叫站点的方法是Object allCallsOn: #class提供一组发件人。也许运行一些 #select: 调用来找出一些数字?

或者使用重构浏览器:它有 FinderTool 之类的东西,可以根据 AST 结构进行搜索。

编辑:正如 mathk 指出的那样,由于特殊消息或内联消息,有时 senders-of 将不起作用。关于该主题的 vm-dev 列表有一个有趣的讨论

于 2010-10-01T21:05:05.460 回答
2

可以帮助您自省系统中任何类/对象的内置工具是:系统浏览器、检查器和对象资源管理器。请参阅Squeak by Example中的“在 Squeak 中开发”一章。您在那里找到的信息与 Pharo 有关。

于 2010-09-29T10:35:24.943 回答
2

smalltalk 中没有静态方法之类的东西。如果你不明白你不明白什么是类。

于 2010-10-11T21:35:47.877 回答