gpt4 book ai didi

ruby - 默认情况下使可枚举对象惰性

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

我已经开始使用 Ruby 2.0 中的 Enumerable::Lazy 功能,它看起来非常有用。

我有一个通过远程数据源分页的可枚举集合。因此,我希望它是一个“懒惰”的收藏。但是,我不想在每次想要使用任何 Enumerable 方法时都指示我类(class)的每个用户都调用 .lazy。相反,最好包含一个假设的 LazyEnumerable 模块,并让所有可枚举方法默认为惰性方法。

有没有人对完成此任务的干净方法有任何想法?谢谢!

最佳答案

我有一个想法,我想我会尝试一下:

module LazyEnumerable
include Enumerable

def self.make_lazy(*methods)
methods.each do |method|
define_method method do |*args, &block|
lazy.public_send(method, *args, &block)
end
end
end

make_lazy *(Enumerable.public_instance_methods - [:lazy])
end

很想知道是否有更强大的方法来做到这一点。

关于ruby - 默认情况下使可枚举对象惰性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16051956/

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