【发布时间】:2012-02-29 00:00:36
【问题描述】:
假设我想看看“复制”是如何在 Dictionary 类中实现的。目前我使用系统浏览器并手动遍历继承层次结构(自下而上),直到找到实现给定消息的类。是否有一个用于工作区的单行代码,可以在正确的位置打开系统浏览器?
【问题讨论】:
标签: ide smalltalk squeak pharo class-hierarchy
假设我想看看“复制”是如何在 Dictionary 类中实现的。目前我使用系统浏览器并手动遍历继承层次结构(自下而上),直到找到实现给定消息的类。是否有一个用于工作区的单行代码,可以在正确的位置打开系统浏览器?
【问题讨论】:
标签: ide smalltalk squeak pharo class-hierarchy
( SomeClass whichClassIncludesSelector: #initialize ) browse
这将浏览实现消息#initialize 的类。
【讨论】:
就我个人而言,我只需在工作区中键入#selector,突出显示它,然后按 alt+m 即可调出消息的所有实现者。比输入所有代码要快得多。
【讨论】:
(SomeClass>>#someSelector) 浏览
在我的 Pharo 图像中也可以使用。
在我的 Pharo 图像中也可以使用。 既然你想先找到一个类,你可以把它和前面的例子结合起来..
((SomeSubclass whichClassIncludesSelector: #someSelector)>>#someSelector) 浏览
直接转到给定的方法。
【讨论】:
如果您使用的是 OmniBrowser,则可以使用上下文菜单Implementors in Hierarchy... 仅浏览 Dictionary 的层次结构中选择器的实现者。
OmniBrowser 还提供了一个继承浏览器。选择#copy 的任何实现,然后单击工具栏中的Inheritance 按钮。它将向您展示#copy 的所有实现者的分层视图。
【讨论】: