gpt4 book ai didi

ruby - 无限枚举器倒带

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

我有一个以下列方式生成枚举器的函数:

def create_example_enumerator(starting_value)
current = starting_value
e = Enumerator.new do |y|
loop do
current += 1
y << current
end
end
end

当前的行为非常简单。

> e = create_example_enumerator(0)
#<Enumerator: details>
> e.next
1
> e.next
2
> e.rewind
#<Enumerator: details>
> e.next
3

我希望 e.rewind 将枚举器重置回其初始值。在仍然使用无限枚举器的同时,是否有一种好的方法可以做到这一点?

最佳答案

这应该有效:

n = Enumerator.new do |y|
number = 1
loop do
y.yield number
number += 1
end
end

n.next #=> 1
n.next #=> 2
n.next #=> 3
n.rewind
n.next #=> 1

关于ruby - 无限枚举器倒带,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240104/

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