Ruby:循环返回枚举器

时间:2013-10-21 10:23:31

标签: ruby enumerator

有没有办法在Ruby中循环枚举器?鉴于这段代码:

a=[1,2,3]
a.to_enum

a.next => 1
a.next => 2
a.next => 3
a.next => 1

当枚举数到达最后一个元素时,如何使next方法返回第一个元素?

2 个答案:

答案 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