假设我有一个数组
array = [1,2,3]
Run Code Online (Sandbox Code Playgroud)
我需要创建一个以循环方式返回值的枚举器:
array.next #=> 1
array.next #=> 2
array.next #=> 3
array.next #=> 1
array.next #=> 2
...
Run Code Online (Sandbox Code Playgroud)
我相信这是一个很好的解决方案
Array#cycle/ Enumerable#cycle做你想要的:
e = [1,2,3].cycle #=> #<Enumerator: [1, 2, 3]:cycle>
e.next #=> 1
e.next #=> 2
e.next #=> 3
e.next #=> 1
e.next #=> 2
Run Code Online (Sandbox Code Playgroud)
(1..3).cycle 返回等效值.