試圖總結數組中的所有數字。 例10 + 20 + 30應該是60按索引訪問數組的值時出錯?
def sum *arr
i=0
total=0
while i <= arr.count
total += arr[i]
i+=1
end
total
end
puts sum(10,20,30)
爲什麼會出現這種錯誤。這段代碼看起來應該適用於我。我究竟做錯了什麼?爲什麼不讓它通過索引訪問數組值?
p8.rb:23:in `+': nil can't be coerced into Fixnum (TypeError)
from p8.rb:23:in `sum'
from p8.rb:29:in `<main>'
保存自己的麻煩,並瞭解如何'arr.inject(:+)'作品。 –
或者只是用戶'''arr.sum'''如果你在軌道上 –
謝謝,我用'inject'和'reduce'之類的,但是我仍然在努力去理解爲什麼上面的代碼返回一個錯誤。這是Ruby內部的東西嗎? – fyz