我已經定義的陣列是這樣的:啪塊參數
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
有什麼區別?