Я хочу создать пустой массив как переменную экземпляра класса в Ruby. Однако мой текущий метод, похоже, не работает.Как инициализировать массивы классов в Ruby
Вот мой код:
class Something
@something = []
def dosomething
s = 5
@something << s
end
end
Когда я вызываю функцию, она дает мне неопределенный метод отслеживающий. Однако, если я делаю что-то подобное с переменным класса, т.е .:
class Something
@@something = []
def dosomething
s = 5
@@something << s
end
end
Это отлично работает.
Я знаю, что могу использовать метод initialize для создания пустого списка для @something, но есть ли другой способ сделать это без использования метода initialize? И почему это работает для переменных класса?
EDIT: Исправлена опечатка
* «без использования метода инициализации» * - есть ли причина, чтобы избежать 'initialize'? – Stefan
Вопрос в том, что вы хотите инициализировать переменную экземпляра класса, а не переменную экземпляра, а не переменную класса. Однако вы назначили greenie на ответ, который не ссылается на переменные экземпляра класса. Зачем? btw, некоторые Rubiests * никогда * не используют переменные класса, всегда выбирая вместо этого переменные экземпляра класса. –