在Ruby中定义sum函数

时间:2013-06-06 08:31:46

标签: ruby arrays numbers sum function

请帮助,我是一名Ruby学生,我知道如何使用.sum方法但不是这样: 如何为数组定义求和函数,以便提供任何元素将导致它们的总和。格式应为sum([数组输入])返回数组元素的总和。例如:sum([])应该返回0,sum([1,2,3])返回6(#again,而不是[1,2,3] .sum)。我被困在盒子里,非常感谢你的帮助。

4 个答案:

答案 0 :(得分:2)

使用Enumerable#inject的解决方案:

def sum(array)
  array.inject(0){|sum, el| sum + el}
end

或者,正如所建议的那样,更短更优雅的形式:

def sum(array)
  array.inject(0, :+)
end

答案 1 :(得分:2)

使用数组求和方法。

arr = [1,2,3]
arr.sum


def sum(arr)
  arr.sum
end

答案 2 :(得分:1)

这样做:

def sum(array)
  array.reduce(0, :+)
end

答案 3 :(得分:0)

def sum(arr)
 sum = 0
 arr.each{|element| sum=sum+element }
 return sum
end