【发布时间】:2021-11-16 03:07:20
【问题描述】:
我正在尝试调用我之前在代码中定义的方法,它给了我这个错误:
"undefined method `filter' for 0:Integer (NoMethodError)"
这是代码:
def descending_order(n)
@arrNum = n.to_s.chars.map {|i| i.to_i }
@final = [@arrNum[0]]
def self.filter(arr, ind)
if self > arr[ind]
@final.insert(ind, self)
else
self.filter(arr, ind+1)
end
end
@arrNum.each { |i| i.filter(@final, 0) }
return @final
end
我尝试了我能想到的一切!谢谢
【问题讨论】:
-
i.filter(@final, 0)←i是一个没有filter方法的数字。 -
顺便说一句,Ruby 没有嵌套方法。您应该避免在另一种方法中定义一种方法。 (除非你在做元编程)
-
filter是数组方法,select的别名apidock.com/ruby/Array/filter
-
哈哈,好的!我应该命名不同的方法。谢谢!