Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten / Het meta-objectprotocol 🆕 / Exercises / Vind een methode
Oplossing: Vind een methode
Hier is een mogelijke oplossing voor de taak.
Code
class Animal {
method speak { 'generic' }
}
class Dog is Animal {
}
say so Dog.^find_method('speak');🦋 Je kunt de broncode vinden in het bestand find-method.raku.
Uitvoer
TrueOpmerkingen
.^find_methodgeeft de methode terug als die bestaat, of een ongedefinieerde waarde als dat niet zo is. Desomaakt daar een simpele boolean van.Dogdefinieert zelf geen methoden, en toch is het resultaatTrue:find_methoddoorzoekt de hele overervingsketen en vindtspeakboven inAnimal. Dit weerspiegelt hoe een echte methodeaanroep op eenDogde geërfde methode zou vinden.