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