Курс Raku / Розширені / Контейнери / Спеціальні та динамічні змінні 🆕 / Вправи
Динамічна змінна
Завдання
Динамічну змінну — записану з твіґілом * — шукають,
рухаючись назовні по стеку викликів, а не за лексичною областю
видимості. Тож значення, яке бачить підпрограма, залежить від того, хто
її викликав, і це дозволяє блоку виконувати викликаний ним код під іншою
особистістю.
- Оголосіть динамічну змінну
$*userзі значенням'guest'. - Напишіть підпрограму
whoami, яка виводитьrunning as, а за ним — поточне значення$*user(наприклад,running as guest). Вона має читати$*userбезпосередньо — параметрів вона не приймає. - Викличте
whoamiодин раз на верхньому рівні: вона повідомляєguest. - Потім усередині блоку, який перевизначає
$*userяк'admin', викличте ту самуwhoamiзнову: тепер вона повідомляєadmin.
Приклад
Програма виводить:
running as guest
running as adminРішення
Навігація курсом
← Тест — Спеціальні змінні | Розв’язання: Динамічна змінна →