Курс Raku / Об’єкти, введення-виведення та винятки / Класи та об’єкти / Класи
Об’єкти типу та екземпляри
Коли ви пишете ім’я класу на кшталт Dog, ви посилаєтеся
на об’єкт типу цього класу. Об’єкт типу представляє сам тип, а
не якийсь конкретний об’єкт цього типу. Екземпляр, створений
через new, є справжнім об’єктом.
Raku вміє їх розрізняти. Метод defined повертає
False для об’єкта типу й True для
екземпляра:
class Dog {
}
say Dog.defined; # False
say Dog.new.defined; # TrueОб’єкт типу вважається невизначеним, бо не містить жодних конкретних даних — це лише опис типу. Екземпляр є визначеним: це справжній об’єкт.
Обидва повідомляють той самий тип через WHAT, з яким ви
познайомилися в розділі про
контейнери:
class Dog {
}
say Dog.WHAT; # (Dog)
say Dog.new.WHAT; # (Dog)Дужки навколо (Dog) — це спосіб Raku показати тип. Отже,
Dog і Dog.new мають спільний тип
Dog; різниця в тому, що одне є самим типом, а друге —
об’єктом цього типу.
Практика
Виконайте 1 тест за змістом цієї теми.
Навігація курсом
← Класи | Тест — Класи →
💪 Або перейдіть одразу до
вправ цього розділу.