Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Attribute / Exercises / Eine änderbare Beschriftung
Lösung: Eine änderbare Beschriftung
Hier ist eine mögliche Lösung der Aufgabe.
Code
class Label {
has $.text is rw;
}
my $l = Label.new(text => 'draft');
$l.text ~= ' (revised)';
say $l.text;🦋 Du findest den Quellcode in der Datei changeable-label.raku.
Ausgabe
draft (revised)Kommentare
Der Trait
is rwlässt den Accessor einen schreibbaren Container liefern, sodass er links von einer Zuweisung stehen kann.Weil er schreibbar ist, funktioniert auch der zusammengesetzte Operator
~=darauf:$l.text ~= ' (revised)'liest den aktuellen Text, hängt das Suffix an und speichert das Ergebnis wieder zurück — alles über denselben Accessor.