0
我正在開發一個項目,遇到一個我不熟悉的錯誤。當我運行我的代碼時,我收到'未定義的方法' - 'nil:NilClass(NoMethodError)',經過一番研究,意味着target_floors [j]爲零。爲什麼會發生這種情況以及如何解決?形式first..last
的Ruby未定義方法` - '爲零:NilClass(NoMethodError)
def retrieve_floor(n, target_floors)
smallestDifference = n
toReturn = 0
for i in 1..n
tempDiff = 0
for j in 0..target_floors.length
difference = target_floors[j] - i
if difference > 0
tempDiff += difference
else
tempDiff += difference.abs
end
end
if tempDiff < smallestDifference
smallestDifference = tempDiff
toReturn = i
end
end
return toReturn
end
由於'target_floors'正在傳遞給此方法,因此通過它的任何人都會在數組中提供'nil'值。你想如何解決它?預計數組中的某些元素是否爲「無」?如果不是,則主叫方有錯。如果是,那麼你只需要檢查'nil'('如果target_floors [j] .nil?...')。 – lurker
'j'比數組的最後一個索引更有可能。 –