迭代循环访问两个元素(如果存在)

Aug*_*ger 1 ruby iterator loops

好吧,我还没有找到一个干净的解决方案来轻松地在Ruby中编写这段代码:

# Java style version:
array.each do |i, el|
  if i < array.length - 1
     process(array[i], array[i+1])
  end
end

# Would be nice if I could do something like this:
array.each do |i, el, next|
  process(el, next)
end
Run Code Online (Sandbox Code Playgroud)

Pla*_*ure 8

你可以使用each_cons:

array.each_cons(2) do |a, b|
  process(a, b)
end
Run Code Online (Sandbox Code Playgroud)