Ruby称为块集合

时间:2015-04-01 17:53:52

标签: ruby

假设我已经通过

构建了一个可调用对象数组
callables = []
callables << block1
callables << block2
callables << block3
callables << block4

后来我想打电话给这些街区。我明白我能做到

callables.each { |block| block.call }

但我想知道我是否可以通过调用类似

之类的东西来简化它
callables.each :call

我已经尝试过上面的代码但得到了ArgumentError。 ruby是否支持这种语法?

1 个答案:

答案 0 :(得分:3)

你应该尝试:

callables.each &:call

Array#each不接受任何论据。这就是为什么当你写callables.each :call时,:call符号传递给方法each作为参数。但是当:call加上&作为前缀时,each知道你正在给它一个作为参数,所以它会起作用。