使用 Ruby inject 将中间值存储到数组中

Store intermediate values into array with Ruby inject

我想存储 ruby 将值注入数组 我发现了一个很好的例子(在网站 http://matthewcarriere.com/2008/06/23/using-select-reject-collect-inject-and-detect/ 上)但它返回的是 Fixnum 而不是数组。

 [1,2,3,4].inject([]) {|acc,n| acc << n+n}

这将返回 262144。但是我希望数组为 [2, 4, 6, 8]。 感谢任何帮助。

它在我的机器上工作。

您在新的 irb 会话中尝试过吗?

您使用的 ruby 是哪个版本?

$ ruby  --version
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

$ irb --version
irb 0.9.6(09/06/30)

$ irb
irb(main):001:0> [1,2,3,4].inject([]) {|acc,n| acc << n+n}
=> [2, 4, 6, 8]
irb(main):002:0>