Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti / Attributi / Exercises / Un’etichetta modificabile
Soluzione: Un’etichetta modificabile
Ecco una possibile soluzione del compito.
Codice
class Label {
has $.text is rw;
}
my $l = Label.new(text => 'draft');
$l.text ~= ' (revised)';
say $l.text;🦋 Trova il programma nel file changeable-label.raku.
Output
draft (revised)Commenti
Il tratto
is rwfa restituire all’accessore un contenitore scrivibile, così può comparire a sinistra di un assegnamento.Proprio perché è scrivibile, anche l’operatore composto
~=funziona su di esso:$l.text ~= ' (revised)'legge il testo attuale, concatena il suffisso e riscrive il risultato — tutto attraverso lo stesso accessore.