Kurso de Raku / Progresinta / Ujoj / Specialaj kaj dinamikaj variabloj / Exercises / Dinamika variablo
Solvo: Dinamika variablo
Jen ebla solvo de la tasko.
Kodo
my $*user = 'guest';
sub whoami {
say "running as $*user";
}
whoami();
{
my $*user = 'admin';
whoami();
}🦋 Vi povas trovi la fontkodon en la dosiero a-dynamic-variable.raku.
Eligo
running as guest
running as adminKomentoj
La tvigilo
*faras$*userdinamika.whoamineniam prenas ĝin kiel parametron — ĝi trovas la valoron per rigardado eksteren tra la voka stako, do la unua voko raportas la defaŭltanguest.La interna bloko redeklaras
$*userkieladmindum la daŭro de tiu bloko. La samawhoaminun vidasadmin, ĉar dinamika serĉado sekvas tiun, kiu nuntempe estas sur la stako. Anstataŭigi dinamikan variablon en amplekso estas kiel vi donas pliigitan kuntekston al ĉio, kio estas vokita el ĝi — sen ŝanĝiwhoamientute.