我已经定义的阵列是这样的:啪块参数
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
有什么区别?