Треки
/
Ruby
Ruby
/
Салабус
/
Змінні екземпляра
Зм

Змінні екземпляра у Ruby

7 вправ

Про концепцію Змінні екземпляра

Ключові моменти:

  • Коли метод .new класу викликають, щоб створити екземпляр обʼєкта, методу .initialize передають усі аргументи для ініціалізації стану цього екземпляра.
  • Назви змінних екземпляра мають префікс @.
  • Змінні екземпляра типово дорівнюють nil, доки їм явно не присвоять інше значення.
  • Змінні екземпляра типово приватні, і працювати з ними слід через гетери й сетери
class Backpack
  initialize(owner)
    @owner = owner
  end

  def owner
    @owner
  end

  def owner=(new_owner)
    @owner = new_owner
  end
end
  • Методи, назви яких закінчуються на =, Ruby розпізнає як сетери, і вони дають змогу скористатися «синтаксичним цукром» присвоєння, наприклад Backpack.new("Sven").owner = "Ayah". Звернімо увагу на пробіл між owner і =, тоді як справжня назва методу - owner=.
  • Гетери й сетери можна створити за допомогою методів attr_reader, attr_writer та attr_accessor:
    • attr_reader: створює гетери для перелічених символів
    • attr_writer: створює сетери для перелічених символів
    • attr_accessor: створює гетери й сетери для перелічених символів
class Backpack
  attr_accessor :owner

  initialize(owner)
    @owner = owner
  end
end
  • Чому варто використовувати гетери й сетери, а не змінну екземпляра напряму?
    • Якщо в попередньому прикладі була помилка в написанні (ми називаємо її «одруківка»), наприклад @ownar, то код мовчки не спрацював би, що могло б занести в систему bug.
    • Гетери й сетери роблять це явним і викликають помилку, коли є одруківка.

Джерела

Ініціалізація екземплярів обʼєктів

Змінні екземпляра

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Змінні екземпляра

Практика заблокована

Розблокуйте ще 5 вправ, щоб практикувати концепцію Змінні екземпляра