Курс языка программирования Raku / Приложение 🆕 / Типы и текстовые машины / Объекты и классы / Exercises / Класс стека
Решение: Класс стека
Вот один из возможных вариантов решения задачи.
Код
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;🦋 Исходный код можно найти в файле stack.raku.
Вывод
3
3
2Комментарии
@!items— приватный атрибут: тайгл!означает, что он доступен только изнутри класса, а хранилищу стека именно таким и следует быть.peekс помощью.tailсмотрит на последний элемент, не удаляя его, аpopдействительно снимает его, поэтому размер уменьшается с3до2.
Навигация по курсу
← Класс стека | Банковский счёт →