Smalltalk 方法,该方法接受一个块,该块接受一个参数

Smalltalk 方法,该方法接受一个块,该块接受一个参数,smalltalk,squeak,Smalltalk,Squeak,如何将块及其参数发送给方法?因此,方法接收块,块接收参数,我在方法iteslf中运行块…例如,请查看OrderedCollection的sort:方法(您将在SortedCollection>>mergeFirst:middle:last:into:by:中找到最后计算的块)。 在接受块作为参数的方法中,您将计算块,这意味着使用参数调用它并使用结果。不要试图“访问块的参数” 例如,您可以向颜色集合发送带有块作为参数的消息,以按亮度对其进行排序: colors := OrderedCollecti

如何将块及其参数发送给方法?因此,方法接收块,块接收参数,我在方法iteslf中运行块…

例如,请查看
OrderedCollection
sort:
方法(您将在
SortedCollection>>mergeFirst:middle:last:into:by:
中找到最后计算的块)。
在接受块作为参数的方法中,您将计算块,这意味着使用参数调用它并使用结果。不要试图“访问块的参数”

例如,您可以向颜色集合发送带有块作为参数的消息,以按亮度对其进行排序:

colors := OrderedCollection new. 
colors addAll: { Color red. Color yellow. Color white. Color black }. 
colors sort: [:c1 :c2 | c1 luminance <= c2 luminance].
colors:=OrderedCollection新建。
colors addAll:{颜色红色。颜色黄色。颜色白色。颜色黑色}。

颜色排序:[:c1:c2 | c1亮度例如,请查看
OrderedCollection
sort:
方法(您将在
SortedCollection>>中找到最终评估的块合并第一:中间:最后:进入:by:
)。
在一个接受一个块作为参数的方法中,你需要计算该块,这意味着用参数调用它并使用结果。不要试图“访问块的参数”

例如,您可以向颜色集合发送带有块作为参数的消息,以按亮度对其进行排序:

colors := OrderedCollection new. 
colors addAll: { Color red. Color yellow. Color white. Color black }. 
colors sort: [:c1 :c2 | c1 luminance <= c2 luminance].
colors:=OrderedCollection新建。
colors addAll:{颜色红色。颜色黄色。颜色白色。颜色黑色}。

颜色排序:[:c1:c2 | c1亮度例如,请查看
OrderedCollection
sort:
方法(您将在
SortedCollection>>中找到最终评估的块合并第一:中间:最后:进入:by:
)。
在一个接受一个块作为参数的方法中,你需要计算该块,这意味着用参数调用它并使用结果。不要试图“访问块的参数”

例如,您可以向颜色集合发送带有块作为参数的消息,以按亮度对其进行排序:

colors := OrderedCollection new. 
colors addAll: { Color red. Color yellow. Color white. Color black }. 
colors sort: [:c1 :c2 | c1 luminance <= c2 luminance].
colors:=OrderedCollection新建。
colors addAll:{颜色红色。颜色黄色。颜色白色。颜色黑色}。

颜色排序:[:c1:c2 | c1亮度例如,请查看
OrderedCollection
sort:
方法(您将在
SortedCollection>>中找到最终评估的块合并第一:中间:最后:进入:by:
)。
在一个接受一个块作为参数的方法中,你需要计算该块,这意味着用参数调用它并使用结果。不要试图“访问块的参数”

例如,您可以向颜色集合发送带有块作为参数的消息,以按亮度对其进行排序:

colors := OrderedCollection new. 
colors addAll: { Color red. Color yellow. Color white. Color black }. 
colors sort: [:c1 :c2 | c1 luminance <= c2 luminance].
colors:=OrderedCollection新建。
colors addAll:{颜色红色。颜色黄色。颜色白色。颜色黑色}。

颜色排序:[:c1:c2 | c1亮度只需将块及其参数作为单独的参数传递给方法。然后将
#值:
发送给块以将参数传递给块。例如

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

只需将块及其参数作为单独的参数传递给方法,然后将
#value:
发送给块以将参数传递给块

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

只需将块及其参数作为单独的参数传递给方法,然后将
#value:
发送给块以将参数传递给块

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

只需将块及其参数作为单独的参数传递给方法,然后将
#value:
发送给块以将参数传递给块

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

您向myMethod发送了哪个块?(以小写字母开始方法)。您向myMethod发送了哪个块?(以小写字母开始方法)。您向myMethod发送了哪个块?(以小写字母开始方法)。您向myMethod发送了哪个块?(以小写字母开始方法).hey..问题是我的块的参数是LinkedList的链接…因此,当我将参数发送到块,并将块发送到方法时,如果块返回true,该方法应将参数从列表中删除..这就是为什么我需要获得访问它的方法..为了从列表中删除than元素,我需要访问它..hey..th事情是我的块的参数是LinkedList的链接…所以当我将参数发送到块,并将块发送到方法时,如果块返回true,该方法应将参数从列表中删除..这就是为什么我需要获得访问它的方法..为了从列表中删除than元素,我需要访问它..嘿..我需要的是s我的块的参数是LinkedList的链接…因此,当我将参数发送到块,并将块发送到方法时,如果块返回true,该方法应将参数从列表中删除..这就是为什么我需要获得访问它的方法..为了从列表中删除than元素,我需要访问它..嘿..问题是参数我的块的ument是LinkedList的链接…因此,当我将参数发送到块,并将块发送到方法时,如果块返回true,该方法应将参数从列表中删除..这就是为什么我确实需要获得访问它的方法..为了从列表中删除than元素,我需要访问它..如何使用block?通过这种方式:object methodTaking:aBlock:#value:argument。所以基本上我应该发送#value而不是value?你很接近了。“object methodTaking:aBlock:argument”.value:是在#methodTaking:and:方法的第一个语句中发送给模块的消息。根据您的问题判断,这里缺少一些基本概念。因此很难将它们拼凑在一起。我想,您最好从一本像Squeak by Example这样的小册子开始“要么这样,要么和一个小声说话的人配对几个小时。你拿着键盘,他说话。我如何用块传递参数?这样:object methodTaking:aBlock:#value:argument。所以基本上我应该改为发送#value