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
相关产品推荐
相关产品推荐

