0

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

1 回答 1

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' "
于 2014-12-08T14:38:33.433 回答