假设我们有两个数组
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中运行。
答案 0 :(得分:2)
each
遍历数组,逐个获取元素:["a", 1]
,["b", 2]
...
在每次迭代时将元素分配给块参数。
现在块参数恰好是两个(i
和j
)。元素是两个数组。在这种情况下,Ruby会做并行分配"并将2个数组元素分配给2个参数。
比较例如。
a, b = [23, 42] # a becomes 23, b becomes 42