Ruby 从实例方法调用类方法

Dia*_*ane 2 ruby methods class-method instance-methods

从实例方法调用类方法的语法是什么?假设我有以下内容

class Class1
    def initialize
       #instance method
       self.class.edit
       puts "hello"
    end

    def self.edit
       #class method
       "ha"
    end
end

c= Class1
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我没有得到任何输出。

tad*_*man 5

您没有得到任何输出,因为您没有对该调用的结果执行任何操作,而且您实际上并没有使用 来创建实例new,您只是c为该类创建了一个别名。如果你稍微改变一下,你会得到这个:

class Class1
    def initialize
       #instance method
       puts self.class.edit
    end

    def self.edit
       #class method
       "ha"
    end
end

c= Class1.new
Run Code Online (Sandbox Code Playgroud)