我在irb中输入以下代码:
(1..5).reduce([]){|a,b| p a,b }
Run Code Online (Sandbox Code Playgroud)
预期结果将是:
[]
1
[]
2
[]
3
[]
4
[]
5
=> []
Run Code Online (Sandbox Code Playgroud)
由于我没有修改任何一点的返回值inject
将是[]
但由于奇怪的原因,我得到了这个:
[]
1
[[], 1]
2
[[[], 1], 2]
3
[[[[], 1], 2], 3]
4
[[[[[], 1], 2], 3], 4]
5
=> [[[[[[], 1], 2], 3], 4], 5]
Run Code Online (Sandbox Code Playgroud)
inject
当我甚至没有更改它时,为什么返回值从最初修改?请有人请点亮它.
我正在使用MRI 1.9.2
谢谢
ruby ×1