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

发布于 2024-11-28 03:18:43 字数 274 浏览 1 评论 0原文

我注意到对于类定义,如果我打开class MyClass,并在中间添加一些内容而不覆盖,我仍然得到之前定义的原始方法。添加的新声明增强了现有声明。

但对于方法定义,我仍然想要与类定义相同的行为,但是当我打开 def my_method 时,def 中的现有语句和end 被覆盖,我需要再次重写。

那么有没有办法让方法定义的行为和定义一样,比如super,但不一定是子类呢?

I noticed for the class definition, if I open up the class MyClass, and add something in between without overwrite I still got the original method which defined earlier. The new statements added augment the existing one.

But as to the method definition, I still want the same behavior as the class definition, but it seems when I open up the def my_method, the exiting statements within the def and end is overwritten, I need to rewrite that again.

So is there any way to make the method definition behave the same as definition, something like super, but not necessarily is the sub-class?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白鸥掠海 2024-12-05 03:18:43

我想您正在寻找 alias_method

class A
  alias_method :old_func, :func

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

I suppose you are looking for alias_method:

class A
  alias_method :old_func, :func

  def func
    old_func # similar to calling 'super'
    # do other stuff
  end
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文