Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 smalltalk 中存在“工作区”环境。根据定义,“self”指向正在执行当前方法的对象。但是,当我在工作区窗口中键入代码片段时,我该如何理解“当前方法”?当前没有运行任何方法的对象,或者我错过了一些东西。有人可以帮忙吗?
你可以调试你执行的代码,你会看到你最终在一个对象上执行了一个临时方法。例如,在 Pharo 中,工作区 DoIt 在 UndefinedObject (nil) 上创建一个方法。所以这里 self 指的是 nil。
试试这个实验:在工作区中输入“self”,选择它,然后从上下文菜单中选择“打印它”。这将向您展示 self 绑定到的对象。
在大多数 Smalltalks 中,self 将为 nil。