3

だから私はSmalltalkに関しては完全に駆け出しで、今はGUIを使って非常にシンプルなアプリを書いています。このアプリが行うのは、2つの入力フィールドから2つのオペランドを足し合わせて、合計を3番目の読み取り専用入力フ​​ィールドに表示することだけです。

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

問題は、選択したテキストのみがコンパイルおよび評価されることです。1行だけを選択している場合、変数宣言はコンパイルされたコードに含まれていません。評価のためにメソッド本体全体(メソッドシグネチャを含まない)を選択すると、正常に機能するはずです。もう1つのオプションは、コンパイラーのプロンプトで「create temp」を選択し、保存されたバージョンのメソッドに戻って、余分なtemp宣言を削除することです。

于 2012-10-03T04:12:18.983 に答える