我已经定义了一个这样的数组:
ary = [[0,1], [2,3]]
运行以下代码:
ary.reduce(nil) do |a, i, k|
puts "#{a.inspect} #{i.inspect} #{k.inspect}"
end
在每次迭代中,我希望变量a
、i
和k
分别保存累加器 ( nil
) 的值、内部数组的第一个元素和第二个元素,即我希望这个输出:
nil 0 1
nil 2 3
但结果是:
nil [0, 1] nil
nil [2, 3] nil
为什么?我怎样才能达到我想要的结果?
此外,为什么使用以下代码可以map
按我的预期工作?
ary.map do |i, k|
puts "#{i.inspect} #{k.inspect}"
end
# Output
# 0 1
# 2 3
有什么区别?