Smalltalk赢了';不能识别声明的临时变量

Smalltalk赢了';不能识别声明的临时变量,smalltalk,visualworks,Smalltalk,Visualworks,所以我在Smalltalk方面是个新手,现在我正在用GUI编写一个非常简单的应用程序。这个应用程序只需将两个输入字段中的两个操作数相加,并在第三个只读输入字段中显示总和 VisualWorks无法识别我已经声明的临时变量 我试图突出显示任何带有已声明临时变量的行,它会说该变量尚未声明;是否要将其声明为临时、实例、共享等。。。特别奇怪的是,当我通过GUI运行该方法时,该方法可以被接受,甚至可以被读取(尽管我在将变量转换为整数时遇到问题),但是如果我想打印或检查带有声明的临时变量的任何行,它会说它不

所以我在Smalltalk方面是个新手,现在我正在用GUI编写一个非常简单的应用程序。这个应用程序只需将两个输入字段中的两个操作数相加,并在第三个只读输入字段中显示总和

VisualWorks无法识别我已经声明的临时变量

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

守则:

add
"adds two input fields"

| op1 op2 result |

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

result := op1 + op2.

^result

有什么想法吗?

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

同样,对于播放和检查原始问题建议的temp结果,调试器可能是更好、更方便的地方。