我有一个整数数组。

例如:

array = [123,321,12389]

有什么好方法能求出它们的和吗?

我知道

sum = 0
array.each { |a| sum+=a }

是可行的。


当前回答

你可以像这样使用。map和。sum:

array.map { |e| e }.sum

其他回答

或者(只是为了比较),如果你安装了Rails(实际上只有ActiveSupport):

require 'activesupport'
array.sum

你也可以用简单的方法做这件事

def sum(numbers)
  return 0 if numbers.length < 1
  result = 0
  numbers.each { |num| result += num }
  result
end

你可以像这样使用。map和。sum:

array.map { |e| e }.sum

Ruby 1.8.7的方式如下:

array.inject(0, &:+) 

Ruby 2.4.0发布了,它有一个Enumerable#sum方法。所以你可以

array.sum

文档中的例子:

{ 1 => 10, 2 => 20 }.sum {|k, v| k * v }  #=> 50
(1..10).sum                               #=> 55
(1..10).sum {|v| v * 2 }                  #=> 110