3

因此,当谈到 Smalltalk 时,我完全是个新手,现在我正在编写一个非常简单的带有 GUI 的应用程序。这个应用程序所做的只是将两个输入字段中的两个操作数相加,并在第三个只读输入字段中显示总和。

我在 VisualWorks 识别我已经声明的临时变量时遇到问题。

我尝试用声明的临时变量突出显示任何行,它会说尚未声明此类变量;我想将它声明为临时、实例、共享等...这特别奇怪,因为当我通过 GUI 运行该方法时,它可以被接受甚至读取,(尽管我在将变量类型转换为整数时遇到问题) 但是如果我想打印或检查任何带有声明的临时变量的行,它会说它不能识别它,我想将它声明为这个或那个。

编码:

add
"adds two input fields"

| op1 op2 result |

op1 := #InputOperand1 value asInteger.
op2 := #InputOperand2 value asInteger.

result := op1 + op2.

^result

有任何想法吗?

4

1 回答 1

6

问题是只有您选择的文本会被编译和评估。如果您只选择一行,则变量声明不包含在编译代码中。如果您选择整个方法体进行评估(不包括方法签名),它应该可以正常工作。另一种选择是在编译器提示时只选择“create temp”,然后恢复到方法的保存版本以摆脱额外的 temp 声明。

于 2012-10-03T04:12:18.983 回答