Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Das Metaobjekt-Protokoll 🆕 / Exercises / Fügen Sie eine Methode hinzu
Lösung: Fügen Sie eine Methode hinzu
Hier ist eine mögliche Lösung der Aufgabe.
Code
class Dog {
has $.name;
}
Dog.^add_method('speak', method { $.name ~ ' says woof' });
say Dog.new(name => 'Rex').speak;🦋 Du findest den Quellcode in der Datei add-a-method.raku.
Ausgabe
Rex says woofKommentare
.^add_methodhängt dem Metaobjekt der Klasse zur Laufzeit eine neue Methode an, angegeben als anonymemethod { … }.Die hinzugefügte Methode ist eine echte Methode der Klasse, innerhalb von ihr erreicht
$.namealso das Attributnamedes Objekts, genau wie es eine im Klassenrumpf geschriebene Methode täte. Nach dem Aufruf antwortet jedesDogauf.speak.