背景
在Smalltalk中,如果您没有显式返回任何内容,则消息传递将评估为接收者(或消息上下文中的"self")。
例如,给定此方法:
MyClass >> myMethod
Transcript show: 'hello'; cr.
执行(doint "print-it")命令的结果是:
| myInstance |
myInstance := MyClass new.
myInstance myMethod.
如果对最后的调用执行 <print-it> 操作,那么结果将是该实例本身。
问题
- 为什么会这样设计?
- 背后的想法是什么?
- 哲学背景是什么?
- 它有什么实际好处?是为了方便方法链编程吗?