Kurso de Raku / Progresinta / Ujoj / Specialaj kaj dinamikaj variabloj / Dinamikaj variabloj

Kvizo — Dinamikaj variabloj

Kion presas la sekva programo?

my $*n = 1;
sub show { say $*n }

sub run {
    my $*n = 2;
    show();
}

run();
01
12
0Nothing
0An error

show estas skribita ĉe la supra nivelo, tuj apud my $*n = 1, sed tiu pozicio estas nerelevanta — dinamika variablo estas serĉata tra la voka stako, ne laŭ kie la kodo troviĝas. Ĉi tie show estas vokita el run, kiu redeklaras $*n kiel 2, do tio estas la efektiva valoro kaj la programo presas 2.

Kursa navigado

Dinamikaj variabloj   |   Enkonstruitaj specialaj variabloj