背景
抓住每个 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:
以这种方式行事有什么好处?