Курс по Raku / Обекти, вход-изход и изключения / Класове и обекти / Интроспекция на обекти / Exercises / Опишете клас
Решение: Опишете клас
Ето едно възможно решение на задачата.
Код
class Animal {
}
class Dog is Animal {
}
say Dog.^name;
say Dog.^mro.elems;
say 'Cat' ∈ Dog.^mro.map(*.^name);🦋 Намерете програмата във файла describe-a-class.raku.
Изход
Dog
4
FalseКоментари
.^nameвръща собственото име на класа —Dog..^mroвръща веригата на наследяване, а.elemsя преброява. Във веригата има четири типа —Dog, родителят муAnimalи универсалнитеAnyиMu, — така че броят е4..^mro.map(*.^name)превръща тази верига в списък от имена на типове —(Dog Animal Any Mu). Операторът за принадлежност към множество∈след това проверява далиCatе сред тях.Dogне произхожда от никакъвCat, така че отговорът еFalse.