Что такое attr_reader, attr_writer, attr_accessor и зачем они?

Этот вопрос проверяет знание способов работы с переменными экземпляра через методы доступа.

Короткий ответ

attr_reader создает геттер, attr_writer — сеттер, а attr_accessor — оба метода. Они позволяют упрощенно создавать методы для работы с переменными экземпляра.

Длинный ответ

Вместо ручного создания геттеров и сеттеров, Ruby предлагает упрощенные способы:

attr_reader создаёт метод для чтения значения переменной.

attr_writer создаёт метод для записи значения.

attr_accessor создаёт оба метода.

 

Пример:

class Car  
  attr_reader :make  
  attr_writer :color  
  attr_accessor :year  

  def initialize(make, year)  
    @make = make  
    @year = year  
  end  
end  

car = Car.new("Toyota", 2020)  
puts car.make       # => Toyota  
car.color = "Red"   # Устанавливаем цвет  
car.year = 2021     # Изменяем год  
puts car.year       # => 2021  

Используйте атрибуты для сокращения кода и улучшения читаемости.

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • Ruby

Подпишись на Ruby Developer в телеграм