gpt4 book ai didi

Ruby 称为 block 的集合

转载 作者:太空宇宙 更新时间:2023-11-03 18:13:51 30 4
gpt4 key购买 nike

假设我已经构建了一个可调用对象数组

callables = []
callables << block1
callables << block2
callables << block3
callables << block4

稍后我想调用这些 block 。我明白我能做到

callables.each { |block| block.call }

但我想知道我是否可以通过调用类似的东西使它变得更简单

callables.each :call

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

最佳答案

你应该试试:

callables.each &:call

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

关于Ruby 称为 block 的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29397535/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com