Курс по Raku / Напреднали / Контейнери / Специални и динамични променливи 🆕 / Динамични променливи

Тест — Динамични променливи

Какво отпечатва следната програма?

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

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

run();
01
12
0Nothing
0An error

show е написана на най-горното ниво, точно до my $*n = 1, но това местоположение е без значение — динамичната променлива се търси през стека на извикванията, а не по това къде стои кодът. Тук show е извикана от run, която предекларира $*n като 2, така че това е стойността в сила и програмата отпечатва 2.

Навигация в курса

Динамични променливи   |   Вградени специални променливи