gpt4 book ai didi

ruby - 如何#rewind #each 下的内部位置?

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

我正在尝试编写将枚举序列倒回到开头的代码。

我认为 rewind 适合这个应用程序,但我不确定如何在传递给 block 的 each 迭代器下实现它?在 Ruby-Docs 示例中,next 用于将内部位置一次移动一个。有了积木,它就会自主移动。

专门针对此的在线示例不多。我目前的解决方法是在循环下嵌套一个迭代器,并在迭代器下使用 break。当迭代器中断时,循环重置枚举序列。

是否有更好的方法(我确信有)这样做?

最佳答案

使用 Enumerator#rewind来自 Ruby 核心类库的方法。

Rewinds the enumeration sequence to the beginning.If the enclosed object responds to a “rewind” method, it is called.

a = [1,2,3,4]
enum= a.each
enum # => #<Enumerator: [1, 2, 3, 4]:each>
enum.next # => 1
enum.next # => 2
enum.rewind # => #<Enumerator: [1, 2, 3, 4]:each>
enum.next # => 1

关于ruby - 如何#rewind #each 下的内部位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21210653/

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