Smalltalk更改变量值

时间:2014-12-08 13:25:13

标签: gnu-smalltalk

我正在学习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.
"

1 个答案:

答案 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' "