【问题标题】:Iterate over loop accessing two elements if they exist [duplicate]遍历循环访问两个元素(如果它们存在)[重复]
【发布时间】:2013-08-09 08:06:58
【问题描述】:

好吧,我还没有找到一个干净的解决方案来轻松地用 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

【问题讨论】:

  • 不要使用next作为变量,它是一个流控制语句。
  • 感谢@tokland,这只是一个例子。

标签: ruby loops iterator


【解决方案1】:

你可以使用each_cons:

array.each_cons(2) do |a, b|
  process(a, b)
end

【讨论】:

  • Good ol' each_cons 再次拯救了这一天!
【解决方案2】:
ar = [1,2,3,4]
(ar.size - 1).times {|i| process ar[i],ar[i+1]}

【讨论】:

    猜你喜欢
    • 2021-07-31
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 2023-03-29
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多