2016-10-23 10 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 

 Смежные вопросы

  • Нет связанных вопросов^_^