Corso di Raku / Avanzato / Contenitori / Variabili speciali e dinamiche / Exercises
Una variabile dinamica
Problema
Una variabile dinamica — scritta con il twigil * — viene
cercata esplorando verso l’esterno lo stack delle chiamate, non tramite
lo scope lessicale. Quindi il valore che una subroutine vede dipende da
chi l’ha chiamata, il che permette a un blocco di eseguire il codice che
chiama sotto un’identita’ diversa.
- Dichiara una variabile dinamica
$*usercon il valore'guest'. - Scrivi una subroutine
whoamiche stamparunning asseguito dal valore corrente di$*user(ad esempio,running as guest). Deve leggere$*userdirettamente — non accetta parametri. - Chiama
whoamiuna volta al livello superiore: riportaguest. - Poi, all’interno di un blocco che ridichiara
$*usercome'admin', chiama la stessawhoamidi nuovo: ora riportaadmin.
Esempio
Il programma stampa:
running as guest
running as adminSoluzione
Navigazione del corso
← Quiz — Variabili speciali | Soluzione: Una variabile dinamica →