Курс языка программирования 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.
Навигация по курсу
← Динамические переменные | Встроенные специальные переменные →