【发布时间】:2019-05-03 11:59:35
【问题描述】:
我目前正在学习一点 Smalltalk。
有没有一种方法可以将函数或方法存储在变量中?
例如,在 Python 中可以说:
x = someobject.method
x() # calling it
这在 Smalltalk 中可行吗?将something.method 本身作为参数传递给另一个方法怎么样?
【问题讨论】:
-
正如安德烈在他的(优秀)回答中清楚地解释的那样,这种可能性是存在的。但是,除非您做一些不寻常的事情,否则您通常会使用 blocks,而不是 compiled methods 或 selectors。使用
perform可能表明设计不佳。