压缩数组的迭代

时间:2014-07-04 21:43:07

标签: ruby arrays iteration

假设我们有两个数组

a = ["a", "b", "c"]
b = [1, 2, 3]

现在a.zip(b)给了我:[["a", 1], ["b", 2], ["c", 3]]

如何:

a.zip(b).each do |i, j|
  puts "#{i} : #{j}"
end

i作为"a",将j作为1,依此类推?请详细说明这种类型的迭代如何在Ruby中运行。

1 个答案:

答案 0 :(得分:2)

each遍历数组,逐个获取元素:["a", 1]["b", 2] ...

在每次迭代时将元素分配给块参数。

现在块参数恰好是两个(ij)。元素是两个数组。在这种情况下,Ruby会做并行分配"并将2个数组元素分配给2个参数。

比较例如。

a, b = [23, 42]    # a becomes 23, b becomes 42