Ruby:循环返回枚举器

Kit*_* Ho 3 ruby enumerator

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

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

a.next => 1
a.next => 2
a.next => 3
a.next => 1
Run Code Online (Sandbox Code Playgroud)

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

Ste*_*fan 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
Run Code Online (Sandbox Code Playgroud)