Corso di Raku / Appendice 🆕 / Tipi e macchine per il testo / Oggetti e classi / Exercises / Una classe pila
Soluzione: Una classe pila
Ecco una possibile soluzione del compito.
Codice
class Stack {
has @!items;
method push($x) { @!items.push($x) }
method pop { @!items.pop }
method peek { @!items.tail }
method size { @!items.elems }
}
my $stack = Stack.new;
$stack.push($_) for 1, 2, 3;
say $stack.peek;
say $stack.pop;
say $stack.size;🦋 Trova il programma nel file stack.raku.
Output
3
3
2Commenti
@!itemsè un attributo privato — il twigil!significa che è raggiungibile solo da dentro la classe, che è esattamente ciò che dovrebbe essere il magazzino di una pila.peekusa.tailper guardare l’ultimo elemento senza rimuoverlo, mentrepoplo toglie davvero, quindi la dimensione scende da3a2.