簡體   English   中英

nil 的未定義方法“%”:NilClass (NoMethodError) Ruby on Rails

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM