接受块的方法,块接受参数

时间:2014-11-12 14:22:23

标签: smalltalk squeak

如何将块及其参数发送给方法?所以方法接收块,块接收参数,我在iteslf方法中运行块...

2 个答案:

答案 0 :(得分:2)

将块及其参数作为单独的参数传递给方法。然后将#value:发送到块以将参数传递给块。 E.g。

methodTaking: aBlock and: anArgument
  aBlock value: anArgument.
  ...

答案 1 :(得分:1)

有关示例,请查看sort:的{​​{1}}方法(您将在OrderedCollection中找到最终评估的块)。
在接受块作为参数的方法中,您将评估块,这意味着使用参数调用它,使用结果。而不是尝试“访问块的参数”。

你会...将带有块作为参数的消息发送到颜色集合,以按亮度对其进行排序:

SortedCollection>>mergeFirst:middle:last:into:by:

导致:“OrderedCollection(彩色黑色,红色,黄色,白色)”