背景
抓住每个 Smalltalk 新手的东西是add:不返回“自我”,而是返回被添加的对象。
例如,使用以下代码:
myCollection := OrderedCollection new
add: 'Peter';
add: 'John';
add: 'Paul'.
myCollection将包含字符串“Paul”,而不是集合本身。
这是因为add:返回要添加的对象,整个级联表达式的计算结果是最后发送的消息。
相反,它应该写yourself在最后:
myCollection := OrderedCollection new
add: 'Peter';
add: 'John';
add: 'Paul';
yourself.
问题
- 为什么会这样?
- 这是怎么设计的?
add:以这种方式行事有什么好处?