在Ruby中定义sum函数

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

使用Enumerable#inject的解决方案:

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

或者,如所建议的那样,更短更优雅的forms:

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

这样做:

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

使用数组求和方法。

 arr = [1,2,3] arr.sum def sum(arr) arr.sum end 
 def sum(arr) sum = 0 arr.each{|element| sum=sum+element } return sum end