Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten / Objecten introspecteren / Exercises / Beschrijf een klasse
Oplossing: Beschrijf een klasse
Hier is een mogelijke oplossing voor de taak.
Code
class Animal {
}
class Dog is Animal {
}
say Dog.^name;
say Dog.^mro.elems;
say 'Cat' ∈ Dog.^mro.map(*.^name);🦋 Je kunt de broncode vinden in het bestand describe-a-class.raku.
Uitvoer
Dog
4
FalseOpmerkingen
.^namegeeft de eigen naam van de klasse terug,Dog..^mrogeeft de overervingsketen terug, en.elemstelt hem. Er zitten vier typen in de keten —Dog, zijn ouderAnimal, en de universeleAnyenMu— dus het aantal is4..^mro.map(*.^name)zet die keten om in de lijst met typenamen,(Dog Animal Any Mu). De verzamelingsoperator∈controleert vervolgens ofCatdaarbij hoort.Dogstamt niet af van enigeCat, dus het antwoord isFalse.