Ruby 如何#回放#each下的内部位置?

Ruby 如何#回放#each下的内部位置?,ruby,iterator,enumeration,enumerable,redo,Ruby,Iterator,Enumeration,Enumerable,Redo,我试图编写一个代码,将枚举序列倒回开头 我认为倒带适用于此应用程序,但我不确定如何在传递到块的每个迭代器下实现它?在Ruby文档示例中,next用于一次移动一个内部位置。有了块,它将自动移动 网络上没有多少具体的好例子。目前我的解决方法是在循环下嵌套一个迭代器,并在迭代器下使用break。当迭代器中断时,循环重置枚举序列 我确信有更好的方法可以做到这一点吗?使用Ruby核心类libarary中的方法 将枚举序列倒带到开头。如果封闭对象响应“倒带”方法,则调用它 a=[1,2,3,4] 枚举=a

我试图编写一个代码,将枚举序列倒回开头

我认为
倒带
适用于此应用程序,但我不确定如何在传递到块的
每个
迭代器下实现它?在Ruby文档示例中,
next
用于一次移动一个内部位置。有了块,它将自动移动

网络上没有多少具体的好例子。目前我的解决方法是在循环下嵌套一个迭代器,并在迭代器下使用
break
。当迭代器中断时,循环重置枚举序列

我确信有更好的方法可以做到这一点吗?

使用Ruby核心类libarary中的方法

将枚举序列倒带到开头。如果封闭对象响应“倒带”方法,则调用它

a=[1,2,3,4]
枚举=a
枚举#=>#
enum.next#=>1
enum.next#=>2
enum.rewind#=>#
enum.next#=>1

我应该指定。如何使用
将每个
传递到块?在本例中,
next
用于一次移动一个内部位置。使用块时,它将自动移动。@LambinJust读取此内容。一切都会清楚的
#每个
都给出了
枚举数
,没有阻塞。起初我很困惑,但第二天,我想,“奥雅纳是对的!我现在明白了!”谢谢!
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