Давайте нормальный класс рубин:Метод экземпляра Ruby класса def initialize: метод экземпляра или класса?
class Person
attr_accessor :name
def initialize name
@name = name
end
end
bob = Person.new("bob")
Мой вопрос характер Initialize. Вот что, new
явно метод класса, но мне кажется, что initialize
- это метод экземпляра (не класс), который вызывается в экземпляре, созданном КОГДА вызывается метод класса new
.
Есть ли у меня это право? Или может кто-то пролить новый свет? Я выполнил некоторые поисковые запросы Google и не нашел никакой ясности.
Это своего рода уникальный - вы можете получить доступ к области экземпляров метода, но, как вы говорите, это можно назвать методом класса. Обратите внимание, что инициализация не будет вызываться, если вы определяете 'def self.new'. –
означает, что это вызвано в результате вызова метода 'new'? или это действительно «новый» метод? –
Да. Также обратите внимание, что [Module # attr_accessor] (http://ruby-doc.org/core-2.0.0/Module.html#method-i-attr_accessor) также является методом класса, который создает два метода экземпляра (здесь 'name' и 'name ='). –