我正在学习Smalltalk,但我没有找到任何改变变量值的例子。 我该怎么办?
Object subclass: test [
| testvar |
"setvalue [
Function to change value of variable 'testvar'
]"
getvalue [
^testvar
]
].
Test := test new.
"
How i can set value to testvar?
Transcript show: Test getvalue.
"
答案 0 :(得分:0)
您可以使用所谓的关键字消息。 你用一个冒号结束一个方法并在那之后放置变量名(可能是多次)。
因此,如果您使用大括号语言中的methodFoo(a, b, c)
,在Smalltalk中通常会写
methodFoo: a withSomething: b containing: c
或同样。这可以使方法名称更具可读性!
此外,Smalltalk中的getter和setter通常以它们所代表的变量命名。 (并且类通常是大写的,而变量不是)
所以你的例子会变成
Object subclass: Test [
| testvar |
testvar: anObject [
testvar := anObject.
]
testvar [
^testvar
]
].
test := Test new.
test testvar: 'my value'.
test testvar print.
" prints 'my value' "