Cursus Raku / Addendum 🆕 / Types en tekstmachines / Objecten en klassen / Exercises / Een stackklasse
Oplossing: Een stackklasse
Hier is een mogelijke oplossing voor de taak.
Code
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;🦋 Je kunt de broncode vinden in het bestand stack.raku.
Uitvoer
3
3
2Opmerkingen
@!itemsis een private attribuut — de twigil!betekent dat het alleen van binnen de klasse bereikbaar is, en dat is precies wat de opslag van een stack moet zijn.peekgebruikt.tailom naar het laatste element te kijken zonder het te verwijderen, terwijlpophet er werkelijk af haalt, dus zakt de omvang van3naar2.