我不是指类变量。我想要一个可以在任何地方使用的变量。 我应该在哪里定义它?[在Squeak中]
我不是指类变量。我想要一个可以在任何地方使用的变量。 我应该在哪里定义它?[在Squeak中]
Smalltalk at: #variableName put: theValue.
引用变量variableName
将返回theValue
。
然而,良好的Smalltalk风格是完全避免使用全局变量。
一种方法是创建一个单例,就像这个答案中所示。
通常情况下,您需要创建一个类变量和相应的类方法,以使某些对象成为全局可访问的。请参考上述单例示例。然后从其他地方访问此变量:
global := MyClass myGlobalVar
MyClass myGlobalVar: true
还有其他方法,但使用类变量的方法在Smalltalk方言之间是可移植的,从长远来看,这是最安全的方式。
在Smalltalk中,一个类是全局可用的,你可以随时更改它。只需创建一个类并将您的修改代码作为类方法添加即可。然后,您可以通过调用来访问您的内容
MyVariable thisOrThat
MyVariable updateThisOrThat: aThisOrThat