Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Das Metaobjekt-Protokoll 🆕 / Exercises / Finden Sie eine Methode
Lösung: Finden Sie eine Methode
Hier ist eine mögliche Lösung der Aufgabe.
Code
class Animal {
method speak { 'generic' }
}
class Dog is Animal {
}
say so Dog.^find_method('speak');🦋 Du findest den Quellcode in der Datei find-method.raku.
Ausgabe
TrueKommentare
.^find_methodliefert die Methode, wenn sie existiert, und andernfalls einen undefinierten Wert. Dassomacht daraus einen schlichten Wahrheitswert.Dogdefiniert selbst keine Methoden, und dennoch ist das ErgebnisTrue:find_methoddurchsucht die gesamte Vererbungskette und findetspeakoben inAnimal. Das entspricht genau dem, wie ein tatsächlicher Methodenaufruf auf einemDogdie geerbte Methode finden würde.
Kursnavigation
← Finden Sie eine Methode | Die Methodenauflösungsreihenfolge →