Curso de Raku / Apéndice 🆕 / Tipos y máquinas de texto / Objetos y clases / Exercises / Una clase pila
Solución: Una clase pila
Aquí tienes una posible solución para la tarea.
Código
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;🦋 Puedes encontrar el código fuente en el archivo stack.raku.
Salida
3
3
2Comentarios
@!itemses un atributo privado: el tigilo!significa que solo se alcanza desde dentro de la clase, que es exactamente lo que debería ser el almacenamiento de una pila.peekusa.tailpara mirar el último elemento sin quitarlo, mientras quepopsí lo saca, así que el tamaño baja de3a2.