"undefined method for integer" 运行 Ruby 中的自定义方法

"undefined method for integer" running a custom method in Ruby

我正在尝试调用我之前在代码中定义的方法,但出现此错误:

"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

我能想到的都试过了!谢谢

你的做法是错误的!

如果您打算 return 给定数字的反向排序数组,则代码片段应为:

def descending_order(n)
  n.digits.sort.reverse
end

上面的代码片段 returns 以下输出

puts descending_order(352614)

=> [6, 5, 4, 3, 2, 1]