Curso de Raku / Avanzado / Contenedores / Variables especiales y dinámicas / Exercises
Una variable dinámica
Problema
Una variable dinámica — una escrita con el twigil * — se
busca recorriendo hacia afuera la pila de llamadas, no por ámbito
léxico. Así, el valor que ve una subrutina depende de quién la llamó, lo
que permite que un bloque ejecute el código que invoca bajo una
identidad diferente.
- Declara una variable dinámica
$*usercon el valor'guest'. - Escribe una subrutina
whoamique imprimarunning asseguido del valor actual de$*user(por ejemplo,running as guest). Debe leer$*userdirectamente — no recibe parámetros. - Llama a
whoamiuna vez en el nivel superior: reportaguest. - Luego, dentro de un bloque que redeclara
$*usercomo'admin', llama a la mismawhoamide nuevo: ahora reportaadmin.
Ejemplo
El programa imprime:
running as guest
running as adminSolución
Navegación del curso
← Quiz — Variables especiales | Solución: Una variable dinámica →