![](/img/trans.png)
[英]Ruby on Rails NoMethodError: undefined method `[]' for nil:NilClass
[英]Undefined method `%' for nil:NilClass (NoMethodError) Ruby on Rails
為 nil:NilClass (NoMethodError) 獲取 '%' 的未定義方法錯誤
這是我擁有的簡單 function:
def oddball_sum(numbers)
i =0
arr = []
while i <= numbers.length
if numbers[i] % 2 != 0
arr << numbers[i]
end
i +=1
end
return arr.sum
end
無法確定問題; 該方法應該采用整數數組並返回所有奇數元素的總和。
假設numbers是[1,2,3,4],當我增加到4時,numbers[4]會返回nil
條件應該是i < numbers.length
除了使用while
,您還可以使用inject
numbers.inject(0) { |sum, i| i % 2?= 0: sum + i : sum }
您可以在 ruby 文檔中 go到 arrays 文檔ruby 是優雅的書面語言之一。 更少的代碼來實現相同的結果。 按照解決方案這樣做
numbers.select {|num| num.odd? }.sum
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.