gpt4 book ai didi

ruby - 为数组的每个元素调用一次 block ,将该元素作为参数传递

转载 作者:数据小太阳 更新时间:2023-10-29 08:25:28 26 4
gpt4 key购买 nike

我在使用 Ruby block 、传入方法时遇到了一些困难。

在下面的例子中,我想显示来自 Box 实例的@array 的每个元素(使用.each 方法):

class Box
def initialize
@array = [:foo, :bar]
end

def each(&block)
# well, hm..
end
end

a = Box.new
a.each { |element| puts element }

最佳答案

您真的只需要委托(delegate)给@array 上的每个方法并将 block 传递给它。此外,您可以包含 Enumerable mix-in 以访问它提供的方法(例如映射、注入(inject)等...):

class Box
include Enumerable

def initialize
@array = [:foo, :bar]
end

def each(&block)
@array.each(&block)
end
end

有关 Enumerable 模块的更多信息可用 in the documentation .

关于ruby - 为数组的每个元素调用一次 block ,将该元素作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2438148/

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