如何在Ruby中向现有方法定义添加语句

6
我注意到对于类定义,如果我打开class MyClass并在其中添加内容而不覆盖,则仍会获得之前定义的原始方法。新增的语句增强了现有的方法。
但是对于方法定义,我仍希望与类定义具有相同的行为,但似乎当我打开def my_method时,defend内的现有语句被覆盖,我需要重新编写它们。
因此,是否有办法使方法定义像定义一样运作,例如使用super,但不一定是子类?

你可以将旧方法存储在一个变量中。 - Karoly Horvath
1个回答

10

我猜你正在寻找alias_method

class A
  alias_method :old_func, :func

  def func
    old_func # similar to calling 'super'
    # do other stuff
  end
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接