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