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

Ruby中如何在类方法内调用同类的另一个类方法?

在Ruby类方法b中调用类方法a的几种方式

嘿,刚接触Ruby的话,类方法这块确实容易有点懵,别担心,其实在类方法里调用另一个类方法超简单,给你两种常用的方式:

方式一:用self调用(推荐)

在类方法内部,self指向的就是当前类本身(也就是Foo这个类对象),所以直接用self.a就能调用类方法a啦,这种方式更灵活,要是以后类名改了也不用改这里的代码:

class Foo
  def self.a
    puts "执行类方法a"
  end

  def self.b
    self.a # 调用类方法a
  end
end

# 测试一下
Foo.b # 会输出:执行类方法a

方式二:直接用类名调用

也可以直接写类名Foo.a来调用,这种方式直观,但缺点是如果以后类名修改了,这里的代码也得跟着改,所以不如第一种灵活:

class Foo
  def self.a
    puts "执行类方法a"
  end

  def self.b
    Foo.a # 直接通过类名调用
  end
end

Foo.b # 同样会输出:执行类方法a

简单总结一下:类方法是绑定在类对象上的方法,所以只要能拿到类对象(不管是用self还是直接类名),就能调用它的类方法啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:09:25