有没有办法在Ruby中循环枚举器?鉴于这段代码:
a=[1,2,3]
a.to_enum
a.next => 1
a.next => 2
a.next => 3
a.next => 1
当枚举数到达最后一个元素时,如何使next
方法返回第一个元素?
答案 0 :(得分:8)
您可以使用Enumerable#cycle
:
a = [1, 2, 3]
enum = a.cycle #=> #<Enumerator: [1, 2, 3]:cycle>
enum.next #=> 1
enum.next #=> 2
enum.next #=> 3
enum.next #=> 1
答案 1 :(得分:2)
您也可以使用rewind
Enumerator.html#rewind
a.rewind
我前段时间问过的问题完全相同how-to-point-to-first-element-when-object-next-reached-the-end