如何对数组中的数字求和

时间:2017-12-18 09:12:42

标签: ruby

我试图用函数对数组中的数字求和:

def total(numbers)
 numbers.each do |e|
  total_number = e + total_number
  return total_number
 end
end

puts total([1,2,3,4])

但我不断收到错误消息:

  

nil无法强制进入Fixnum(repl):18:在'+'

谁能看到我做错了什么?

每个> do循环在函数之外工作。

2 个答案:

答案 0 :(得分:7)

有很多不同的方法可以做到:

div

还有很多其他人。下次检查docs时不要害羞;)

答案 1 :(得分:5)

您尚未初始化total_number变量,因此它会发出错误,请尝试此

def total(numbers)
 total_number = 0
 numbers.each do |e|
  total_number += e # Same as your total_number = e + total_number
 end
 return total_number
end

puts total([1,2,3,4])

但最好的方法是使用ruby内置的数组方法。

array = [1, 2, 3, 4]
total_number = array.inject(:+)