gpt4 book ai didi

smalltalk - 如何在 Pharo 中查找哪个类实现了某个方法?

转载 作者:行者123 更新时间:2023-12-02 23:58:29 26 4
gpt4 key购买 nike

这里是新手,正在学习“Pharo 示例”。书中提到了 EllipseMorph new openInWorld 结果调用 Morph openInWorld,而 EllipseMorph defaultColor 是一个被覆盖的消息:我如何计算使用系统浏览器或其他东西来解决这个问题?

通常的查找方法仅在立即选择的类中查找匹配项。一般来说,是否可以查找哪个类将响应(例如)Foo bar

更新:感谢所有建议(Finder、Spotter);调试器是我遇到过的最令人大开眼界的工具!

最佳答案

Smalltalk 提供了许多可以帮助您完成此任务的工具和浏览器。如果您已经知道消息的名称,您可以:

  • 使用 Spotter (Shift+Enter) 输入并查看所有发件人和实现者,然后选择其中之一进行浏览。
  • 在浏览器中查看方法时,单击方法名称左侧的绿色向上/向下小三角形,分别指示层次结构中向上和/或向下的实现,以在其上打开浏览器。
  • (几乎)在任意位置选择消息名称,然后输入 CMD+M 以查看 implementors 和 CMD +N 查看命令n

在这种情况下,您还可以在 Playground 中输入 EllipseMorph new openInWorld 并从菜单中选择Debug-It。这将打开一个调试器,并选择new。如果您点击进入,顶行将更改为EllipseMorph class(Behavior) new。这表明这里使用了来自Behaviornew。如果您继续单步执行into(2次),您将看到它更改为EllipseMorph(BorderedMorph)初始化。通过跟踪发送的消息,您可以看到所有内容的实现位置。

关于smalltalk - 如何在 Pharo 中查找哪个类实现了某个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32776922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com