y:=3。z:=4。
h:= '[x:= y+z.]'.
(BlockClosure readFromString: h) 値。
smalltalk 構文で文字列を取得しようとしてブロックに入れて実行しようとしているこのコードがありますが、次のようなエラーが表示されます:
未処理の例外: メッセージが理解されていません #+
h:= '[x:= 3+4.]' のようなことをすると。
(BlockClosure readFromString: h) 値
それはうまく動作します。なぜこれが起こっているのかわかりません。y は何も指しておらず、 + メソッドを理解していないと推測しています。しかし、ブロックが y と z を自由変数として扱わないのはなぜでしょうか?