y:=3。z:=4。
h:= '[x:= y+z.]'。
(BlockClosure readFromString: h) 值。
我有这段代码,我试图在 smalltalk 语法中获取一个字符串,并尝试将它放在一个块中并执行它,但是我收到一个错误,上面写着:
未处理的异常:消息不理解 #+
当我做类似
h:= '[x:= 3+4.]' 的事情时。
(BlockClosure readFromString: h) 值
它工作得很好。我不明白为什么会这样。我猜 y 没有指向任何东西,它不理解 + 方法。但是为什么该块不将 y 和 z 视为自由变量?