You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby中同名方法内如何调用标准库同名方法?

在自定义print方法中调用Ruby标准print的方案

当你在类内重定义了print方法后,直接调用print会触发自定义实现,要调用Ruby原生的标准print,可以通过以下两种方式实现:

1. 显式调用Kernel模块的print方法

Ruby的标准print是Kernel模块提供的实例方法,所有类都会默认混入Kernel。因此可以直接通过Kernel.print来指定调用原生方法:

class MyClass
  def print(content)
    # 调用标准print输出前缀
    Kernel.print("[原生输出] ")
    # 自定义print的逻辑
    puts content
  end
end

obj = MyClass.new
obj.print("这是自定义print的内容")

2. 使用super调用父类的print方法

如果你的类没有显式继承其他自定义类,父类就是Object,而Object的print方法就是原生的Kernel实现。此时可以用super来调用父类的print:

class MyClass
  def print(*args)
    # 调用父类的原生print
    super("原生输出内容:")
    # 自定义逻辑
    puts args.join(" ")
  end
end

obj = MyClass.new
obj.print("自定义", "内容")

注意:使用super时要保证参数匹配原生print的签名(原生print支持多个参数),否则会报错。

内容的提问来源于stack exchange,提问作者Nisanio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 19:03:09