Курс по Raku / Напреднали / Подпрограми
Вложени подпрограми
Подпрограма може да бъде дефинирана вътре в друга подпрограма. Вложената подпрограма е обикновена подпрограма, но е видима само в подпрограмата, която я съдържа.
sub outer {
sub inner {
say 'I am the inner subroutine';
}
inner;
}
outer;Програмата отпечатва:
I am the inner subroutineТук inner е декларирана вътре в outer, а
outer я извиква. Това работи, защото inner е в
обхвата на цялото тяло на outer.
Извън outer обаче името inner не
съществува. Следната програма не се компилира:
sub outer {
sub inner { 42 }
}
inner; # error: Undeclared routine: innerВлагането е полезно, когато помощна подпрограма е необходима само на една подпрограма. Поставянето й вътре прави ясно, че тя е частен детайл, и предотвратява случайното й извикване от друго място.
Практика
Направете 1 тест върху съдържанието на тази тема.
Упражнения
Този раздел съдържа 3 упражнения. Разгледайте всички теми в раздела, преди да се захванете с практиката.