我试图用函数对数组中的数字求和:
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循环在函数之外工作。
答案 0 :(得分:7)
答案 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(:+)