3

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

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

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

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

4

2 回答 2

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
于 2013-10-21T10:25:47.517 回答
2

你也可以使用rewind Enumerator.html#rewind

a.rewind

前段时间我问的完全相同的问题如何指向第一个元素何时对象下一个到达终点

于 2013-10-21T10:34:48.827 回答