我正在尝试通过 Dolphin Smalltalk X6 附带的教程来学习 Smalltalk。
我的问题涉及对具有多条消息的表达式的评估。
我的理解是首先评估简单消息,然后是二进制消息,最后是关键字消息(括号中的代码除外)。但是,我无法将此理解应用于以下示例中的第二行(在Dolphin Smalltalk 教程中找到)。
playground := Playground new.
teresa := playground add: Triangle new. "Misunderstood code"
teresa class. "Evaluates to 'Triangle'"
如果我的理解是正确的,那么将评估第二行:
1. Simple message 'new' sent to Triangle, triangle object as response
2. Binary message ':=' with parameter 'playground' sent to 'teresa'.
3. Keyword message 'add:' with parameter 'triangle object' sent to 'teresa'.
4. teresa class. "evaluates to 'Playground'".
我的误解是“teresa”是如何指代匿名 Triangle 对象而不是“playground”所指的 Playground 对象。
我查找了 Smalltalk 评估的第二种解释,提到了 := 或添加:是没有成功的特殊情况,而我能想到的唯一其他解释是一个基本的误解。
任何帮助理顺我?