или вне метода внутри класса, получаем ее везде внутри класса? а без собачки получаем переменную только внутри метода? А что будет если поставить обычную переменую внутри класса вне метода?
а есть ещё две собачки 🐶🐶
Собачка это переменная экземпляра, она будет доступна только в одном экземпляре, т.е для одного объекта. Например: class Hello attr_accessor:name def report puts name end end Без конструкции attr_accessor:name у тебя бы ничего не вышло, потому что она создает сразу гетер( от слова Get - получать) и сеттер( от слова Set изменять) Сеттеры и геттеры это тоже методы, но просто лучше воспользоваться этой конструкцией, нежели писать вот так - Это геттер def name @name end Т.е мы отсюда получаем наше значение. Его так же можно создать методом attr_reader. И сеттер - attr_writer def name=(name) @name = name end Т.е мы меняем значение. attr_accessor:name - делает сразу и геттер и сеттер
Обсуждают сегодня