如何查找 class 在 Pharo 中实现了一个方法?
How do I lookup which class implements a method in Pharo?
这里是新手,正在经历 "Pharo by Example"。这本书提到了一个 EllipseMorph new openInWorld
导致调用 Morph openInWorld
的示例,而 EllipseMorph defaultColor
是一个被覆盖的消息:我如何使用系统浏览器或其他东西来解决这个问题?
通常的查找方法 仅在立即选择的class 中查找匹配项。通常是否可以查找 class 将响应(例如)Foo bar
?
更新:
感谢所有建议(Finder、Spotter); Debugger 是我遇到过的最让我大开眼界的工具!
Smalltalk 提供了很多工具和浏览器可以帮助您解决这个问题。如果您已经知道消息的名称,您可以:
- 使用 spotter (Shift+Enter) 输入并查看所有发送者和实施者,以及 select 一个浏览它。
- 在浏览器中查看方法时,单击方法名称左侧的小绿色 up/down 三角形分别表示层次结构中 and/or 下的实现,以打开浏览器在他们身上。
- select 消息的名称(几乎)在任何地方并键入 CMD+M 以查看 im补充者和CMD+N看到sender .
在这种情况下,您还可以在 playground 中键入 EllipseMorph new openInWorld
,然后从菜单中键入 select Debug-It。这将在 new
上打开带有 selection 的调试器。如果您单击 进入 ,顶行将变为 EllipseMorph class(Behavior) new
。这表明此处使用了 Behavior
中的 new
。如果您继续使用 进入 (2 次),您会看到它变为 EllipseMorph(BorderedMorph) initialize
。通过跟踪发送的消息,您可以看到一切都在何处实施。
添加到 Stephan 的答案 (+1) 中,最简单的方法之一是使用 Finder 工具,尤其是如果您是 Smalltalk 的新手并且更喜欢使用 GUI。只需左键单击背景上的任意位置(相当于 Pharo 图像中的桌面)和 select Tools > Finder
:
接下来,输入方法的名称,例如openInWorld
在搜索字段中(确保 "Selectors" 在右侧的下拉列表中 selected)并点击 Enter:
然后您可以浏览所有包含您的搜索字符串的方法(注意它自动是通配符搜索)和实现它们的 classes。底部的面板显示了 selected 实现,上下文菜单为您提供了更多选项,例如浏览 class 您 select 编辑的
这里是新手,正在经历 "Pharo by Example"。这本书提到了一个 EllipseMorph new openInWorld
导致调用 Morph openInWorld
的示例,而 EllipseMorph defaultColor
是一个被覆盖的消息:我如何使用系统浏览器或其他东西来解决这个问题?
通常的查找方法 仅在立即选择的class 中查找匹配项。通常是否可以查找 class 将响应(例如)Foo bar
?
更新: 感谢所有建议(Finder、Spotter); Debugger 是我遇到过的最让我大开眼界的工具!
Smalltalk 提供了很多工具和浏览器可以帮助您解决这个问题。如果您已经知道消息的名称,您可以:
- 使用 spotter (Shift+Enter) 输入并查看所有发送者和实施者,以及 select 一个浏览它。
- 在浏览器中查看方法时,单击方法名称左侧的小绿色 up/down 三角形分别表示层次结构中 and/or 下的实现,以打开浏览器在他们身上。
- select 消息的名称(几乎)在任何地方并键入 CMD+M 以查看 im补充者和CMD+N看到sender .
在这种情况下,您还可以在 playground 中键入 EllipseMorph new openInWorld
,然后从菜单中键入 select Debug-It。这将在 new
上打开带有 selection 的调试器。如果您单击 进入 ,顶行将变为 EllipseMorph class(Behavior) new
。这表明此处使用了 Behavior
中的 new
。如果您继续使用 进入 (2 次),您会看到它变为 EllipseMorph(BorderedMorph) initialize
。通过跟踪发送的消息,您可以看到一切都在何处实施。
添加到 Stephan 的答案 (+1) 中,最简单的方法之一是使用 Finder 工具,尤其是如果您是 Smalltalk 的新手并且更喜欢使用 GUI。只需左键单击背景上的任意位置(相当于 Pharo 图像中的桌面)和 select Tools > Finder
:
接下来,输入方法的名称,例如openInWorld
在搜索字段中(确保 "Selectors" 在右侧的下拉列表中 selected)并点击 Enter:
然后您可以浏览所有包含您的搜索字符串的方法(注意它自动是通配符搜索)和实现它们的 classes。底部的面板显示了 selected 实现,上下文菜单为您提供了更多选项,例如浏览 class 您 select 编辑的