gpt4 book ai didi

smalltalk - 在 Pharo Smalltalk 中初始化类变量

转载 作者:行者123 更新时间:2023-12-03 23:33:31 25 4
gpt4 key购买 nike

我在 Pharo 中初始化类变量时遇到问题。我首先创建一个具有单个类变量的类:

Object subclass: #ClassVariableTestBehavior
instanceVariableNames: ''
classVariableNames: 'test'
package: 'DummyPackage'

然后在类方面我创建了一个 initialize 消息并将变量设置为 nil。

ClassVariableTestBehavior class >>> initialize
test := nil

我保存然后创建了一个实例方法:

ClassVariableTestBehavior >>> test
^ test

又回去把类方法改成:

ClassVariableTestBehavior class >>> initialize
test := 34

然后我在 Playground 上打印了以下结果:

ClassVariableTestBehavior new test.

这是 nil。为什么类变量的值没有更新为 34?

最佳答案

class>>initialize 方法仅在最初从外部文件加载代码时使用一次。它不会在每次编辑方法时运行。 (如果您修改了注释,您是否希望数据被清除!?)事实上,nil 值并非来自您的方法,而只是初始默认值。

一个常见的约定是在初始化方法中添加一个注释,其中包含一行可以执行的代码。

"
ClassVariableTestBehavior initialize.
"

关于smalltalk - 在 Pharo Smalltalk 中初始化类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66041156/

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