2

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

4

4 回答 4

2

使用Enumerable#inject的解决方案:

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

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

def sum(array)
  array.inject(0, :+)
end
于 2013-06-06T08:34:58.473 回答
2

使用数组求和方法。

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


def sum(arr)
  arr.sum
end
于 2013-06-06T08:56:20.377 回答
1

这将做:

def sum(array)
  array.reduce(0, :+)
end
于 2013-06-06T08:38:24.243 回答
0
def sum(arr)
 sum = 0
 arr.each{|element| sum=sum+element }
 return sum
end
于 2013-06-06T08:36:27.620 回答