Raku-Kurs / Anhang 🆕 / Typen und Textmaschinen / Objekte und Klassen / Exercises / Eine Stack-Klasse
Lösung: Eine Stack-Klasse
Hier ist eine mögliche Lösung der Aufgabe.
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;🦋 Du findest den Quellcode in der Datei stack.raku.
Ausgabe
3
3
2Kommentare
@!itemsist ein privates Attribut — der Twigil!bedeutet, dass es nur von innerhalb der Klasse erreichbar ist, und genau das sollte der Speicher eines Stapels sein.peekverwendet.tail, um das letzte Element anzusehen, ohne es zu entfernen, währendpopes tatsächlich herunternimmt, die Größe fällt also von3auf2.