Possible Duplicate:
How to sum array members in Ruby?
号
假设我有这个阵列
然后我想做:
1
| @test[0] + @test[1] + @test[2] + @test[3] |
号
有没有一种更聪明,更快的方法来做这件事?
- 看看这个:stackoverflow.com/questions/1538789/…
您可以这样做:
号
- 褶皱需要标识为初始值:@test.inject(0, :+)。
- 不使用Ruby,如果不提供初始值,它使用集合中的第一个值作为初始值:ruby-doc.org/core-1.9.3/enumerable.html
- @托克兰:"如果您没有明确指定备忘录的初始值,那么使用托收的第一个元素作为备忘录的初始值。"(来自文档)
- 更直接地说:ruby doc.org/core-1.9.3/enumerable.html method-i-inject
- Jesse,Steenslag:不适用于空输入:[].inject(:+)。我想OP需要一个通用的解决方案,而不是4个元素。
1 2
| sum = 0
@test.each { |el| sum+=el } |
- 对于许多(命令式)语言来说,这是可以的,但是在Ruby中(函数式)Enumerable#inject是惯用的解决方案。