2016-10-23 139 views
1

從實例方法調用類方法的語法是什麼? 假設我有以下來自實例方法的Ruby調用類方法

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

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

c= Class1 

當我運行這段代碼,我沒有得到任何輸出。

+0

嘗試'Class1.new'。 'initialize'是一個實例方法,因此它必須在'Class1'的一個實例上調用。 'Class1.new'創建實例,在其上調用'initialize',然後返回實例。 –

回答

3

你沒有得到任何輸出,因爲你沒有對這個調用的結果做任何事情,再加上你實際上沒有創建一個帶有new的實例,你只需要讓c成爲該類的別名。如果你改變了一點,你得到這個:

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

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

c= Class1.new