Raku kurss / Padziļināti / Konteineri / Speciālie un dinamiskie mainīgie 🆕 / Exercises / Dinamisks mainīgais
Risinājums: Dinamisks mainīgais
Šeit ir iespējams risinājums uzdevumam.
Kods
my $*user = 'guest';
sub whoami {
say "running as $*user";
}
whoami();
{
my $*user = 'admin';
whoami();
}🦋 Atrodiet programmu failā a-dynamic-variable.raku.
Izvade
running as guest
running as adminKomentāri
Tvigils
*padara$*userdinamisku.whoamito nekad neņem kā parametru — tā atrod vērtību, skatoties uz āru pa izsaukumu steku, tāpēc pirmais izsaukums ziņo noklusējumuguest.Iekšējais bloks sava bloka laikā
$*userpārdeklarē kāadmin. Tā patiwhoamitagad redzadmin, jo dinamiskā meklēšana seko tam, kas pašlaik atrodas stekā. Dinamiska mainīgā pārmākšana kādā redzamības apgabalā ir veids, kā piešķirt paaugstinātu kontekstu visam, kas no tā izsaukts, — nemainotwhoamine mazākajā mērā.