首页 > 解决方案 > 如何覆盖 Ruby + 方法?

问题描述

只是为了学习目的,我试图覆盖 Ruby + 方法,但我没有得到想要的输出。

class Integer
  def +(my_num)
    "Plus method overridden"
  end
end

puts 5.+(9)

请让我知道我在这里做错了什么。

标签: ruby

解决方案


看来您使用 ruby​​ < 2.4。如果是这样,您想要修补Fixnum而不是Integer. 请小心,因为系统本身也使用数字。

class Fixnum
  alias_method :add, :+

  def +(other)
    puts 'plus method overridden'
    add(other)
  end
end

puts 5 + 9

推荐阅读