How to sum array of numbers in Ruby?

brainfck picture brainfck · Oct 8, 2009 · Viewed 457.4k times · Source

I have an array of integers.

For example:

array = [123,321,12389]

Is there any nice way to get the sum of them?

I know, that

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

would work.

Answer

jomey picture jomey · Oct 8, 2009

Or try the Ruby 1.9 way:

array.inject(0, :+)

Note: the 0 base case is needed otherwise nil will be returned on empty arrays:

> [].inject(:+)
nil
> [].inject(0, :+)
0