Smalltalk不会识别声明的临时变量

时间:2012-10-03 02:40:48

标签: smalltalk visualworks

所以当谈到Smalltalk时,我是一个完全初出茅庐的人,现在我正在用GUI编写一个非常简单的应用程序。所有这个应用程序都是从两个输入字段一起添加两个操作数,并在第三个只读输入字段中显示总和。

我在使用VisualWorks识别我已经声明的临时变量时遇到了麻烦。

我尝试使用声明的临时变量突出显示任何行,并且它会说这个变量尚未声明;我想将它声明为temp,instance,shared等...它特别奇怪,因为当我通过GUI运行它时,该方法可以被接受甚至读取(虽然我遇到了将变量类型转换为整数的问题)但是如果我想打印或检查带有声明的临时变量的任何行,它会说它不能识别它并且我是否要将其声明为这个或那个。

守则:

add
"adds two input fields"

| op1 op2 result |

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

result := op1 + op2.

^result

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

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