Курс по 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 тест върху съдържанието на тази тема.
Навигация в курса
← Класове | Тест — Класове →
💪 Или преминете направо към упражненията в този раздел.