gpt4 book ai didi

smalltalk - 是子类 : an ordinary method in Squeak?

转载 作者:行者123 更新时间:2023-12-02 00:06:02 25 4
gpt4 key购买 nike

在 Squeak 中创建一个新的子类似乎是通过向父类(super class)发送消息来完成的:

Object subclass: #Boolean
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Kernel-Objects'

在哪里可以看到这个方法的实现?我在 ObjectProtoObject 的类方法列表中都找不到它。

最佳答案

是的,这是一条普通消息。实现在名为 Class 的类中。您可以通过在任何类定义中选择消息名称(例如您在问题中发布的消息名称)来找到它的实现,并调用“它的​​实现者”操作(Cmd-m,或者如果您在单击时按住 shift,则在弹出菜单中).

您会发现它委托(delegate)给了 ClassBuilder,您可以在其中看到新类是如何产生的。

请注意,您将消息发送到类 对象,而不是对象的实例。这就是为什么您没有在 ObjectProtoObject 中找到方法的原因。您宁愿必须在 Object class 中查找方法,它是 Object 的元类,它继承自 Class

关于smalltalk - 是子类 : an ordinary method in Squeak?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60570965/

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