背景
在 Smalltalk 中,如果您没有明确返回任何内容,则传递的消息将评估为接收者(或消息上下文中的“自我”)。
例如,给定这个方法:
MyClass >> myMethod
Transcript show: 'hello'; cr.
评估(点“打印”)这个:
| myInstance |
myInstance := MyClass new.
myInstance myMethod.
如果 <print-it> 执行到最后一次调用,则结果将是实例本身。
问题
- 为什么这样设计?
- 它背后的想法是什么?
- 哲学背景是什么?
- 它有什么实际好处?是为了方便方法链接吗?