Raku kurss / Padziļināti / Apakšprogrammas
Ligzdotas apakšprogrammas
Apakšprogrammu var definēt iekšpus citas apakšprogrammas. Ligzdota apakšprogramma ir parasta apakšprogramma, taču tā ir redzama tikai tajā apakšprogrammā, kas to satur.
sub outer {
sub inner {
say 'I am the inner subroutine';
}
inner;
}
outer;Programma izdrukā:
I am the inner subroutineŠeit inner ir deklarēta iekšpus outer, un
outer to izsauc. Tas darbojas tāpēc, ka inner
ir redzama visā outer ķermenī.
Ārpus outer nosaukums inner tomēr
neeksistē. Šī programma nekompilējas:
sub outer {
sub inner { 42 }
}
inner; # error: Undeclared routine: innerLigzdošana noder, kad palīgrutīna vajadzīga tikai vienai apakšprogrammai. Turot to iekšpusē, kļūst skaidrs, ka tā ir privāta detaļa, un tā tiek pasargāta no izsaukšanas no citurienes pa kļūdai.
Prakse
Jūs gaida 1 viktorīna par šī temata saturu.
Vingrinājumi
Šajā sadaļā ir 3 vingrinājumi. Pirms ķerieties pie vingrinājumiem, izlasiet visus šīs sadaļas tematus.