Курс по 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.
Навигация в курса
← Клас за стек | Банкова сметка →