Курс по Raku / Напреднали / Контейнери / Специални и динамични променливи 🆕 / Динамични променливи
Тест — Динамични променливи
Какво отпечатва следната програма?
my $*n = 1;
sub show { say $*n }
sub run {
my $*n = 2;
show();
}
run();| 0 | 1 |
| 1 | 2 |
| 0 | Nothing |
| 0 | An error |
show е написана на най-горното ниво, точно до
my $*n = 1, но това местоположение е без значение —
динамичната променлива се търси през стека на извикванията, а
не по това къде стои кодът. Тук show е извикана от
run, която предекларира $*n като
2, така че това е стойността в сила и програмата отпечатва
2.