我有一个整数数组。
例如:
array = [123,321,12389]
有什么好方法能求出它们的和吗?
我知道
sum = 0
array.each { |a| sum+=a }
是可行的。
我有一个整数数组。
例如:
array = [123,321,12389]
有什么好方法能求出它们的和吗?
我知道
sum = 0
array.each { |a| sum+=a }
是可行的。
当前回答
Ruby 1.8.7的方式如下:
array.inject(0, &:+)
其他回答
对于ruby >= 2.4,你可以使用sum:
array.sum
对于ruby < 2.4,你可以使用inject:
array.inject(0, :+)
注意:需要0基本大小写,否则空数组将返回nil:
> [].inject(:+)
nil
> [].inject(0, :+)
0
Ruby 1.8.7的方式如下:
array.inject(0, &:+)
只是为了多样性,如果你的数组不是一个数字数组,而是一个具有数字属性的对象数组(例如amount),你也可以这样做:
array.inject(0){|sum,x| sum + x.amount}
你可以像这样使用。map和。sum:
array.map { |e| e }.sum
试试这个:
array.inject(0){ |sum, x| sum + x }
参见Ruby的可枚举文档
(注意:需要0基本情况,以便在空数组上返回0而不是nil)