Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Objekte introspizieren / Exercises / Beschreiben Sie eine Klasse
Lösung: Beschreiben Sie eine Klasse
Hier ist eine mögliche Lösung der Aufgabe.
Code
class Animal {
}
class Dog is Animal {
}
say Dog.^name;
say Dog.^mro.elems;
say 'Cat' ∈ Dog.^mro.map(*.^name);🦋 Du findest den Quellcode in der Datei describe-a-class.raku.
Ausgabe
Dog
4
FalseKommentare
.^nameliefert den eigenen Namen der Klasse,Dog..^mroliefert die Vererbungskette, und.elemszählt sie. In der Kette stehen vier Typen —Dog, sein ElternteilAnimalsowie die universellenAnyundMu—, die Anzahl ist also4..^mro.map(*.^name)verwandelt diese Kette in die Liste der Typnamen,(Dog Animal Any Mu). Der Mengenoperator∈prüft dann, obCatdarunter ist.Dogstammt von keinerCatab, die Antwort ist alsoFalse.