如何使用Ruby枚举器获取下n个元素?

p.m*_*los 1 ruby enumerators

我试图n使用Ruby枚举器获取下一个数量的元素,使用:

a = [1, 2, 3, 4, 5, 6]
enum = a.each
enum.next(2) # expecting [1, 2]
enum.next(2) # expecting [3, 4]
Run Code Online (Sandbox Code Playgroud)

#next不支持这一点.还有另一种方法可以做到吗?或者我该怎么办?

什么是正确的Ruby方法呢?

Wan*_*ker 5

你可以使用take方法

enum.take(2)
Run Code Online (Sandbox Code Playgroud)

如果你需要两个元素的切片,你可以这样做:

e = enum.each_slice(2)
p e.next
#=> [1, 2]
p e.next
#=> [3, 4]
Run Code Online (Sandbox Code Playgroud)