如何使用 Ruby 枚举器获取下 n 个元素?
How can I get the next n number of elements using a Ruby enumerator?
我正在尝试使用 Ruby 枚举器获取下 n
个元素,其中:
a = [1, 2, 3, 4, 5, 6]
enum = a.each
enum.next(2) # expecting [1, 2]
enum.next(2) # expecting [3, 4]
但是#next
不支持。还有另一种方法可以做到吗?
还是我应该做?
正确的 Ruby 方法是什么?
你可以使用take
方法
enum.take(2)
如果您需要两个元素的切片,您可以这样做:
e = enum.each_slice(2)
p e.next
#=> [1, 2]
p e.next
#=> [3, 4]
a = [1, 2, 3, 4, 5, 6]
enum = a.dup
enum.shift(2) # => [1, 2]
enum.shift(2) # => [3, 4]
我正在尝试使用 Ruby 枚举器获取下 n
个元素,其中:
a = [1, 2, 3, 4, 5, 6]
enum = a.each
enum.next(2) # expecting [1, 2]
enum.next(2) # expecting [3, 4]
但是#next
不支持。还有另一种方法可以做到吗?
还是我应该做?
正确的 Ruby 方法是什么?
你可以使用take
方法
enum.take(2)
如果您需要两个元素的切片,您可以这样做:
e = enum.each_slice(2)
p e.next
#=> [1, 2]
p e.next
#=> [3, 4]
a = [1, 2, 3, 4, 5, 6]
enum = a.dup
enum.shift(2) # => [1, 2]
enum.shift(2) # => [3, 4]