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

  1. Il tratto is rw fa restituire all’accessore un contenitore scrivibile, così può comparire a sinistra di un assegnamento.

  2. 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.

Un’etichetta modificabile   |   Metodi