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: inner

Ligzdoš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.

  1. Privāts palīgs
  2. Noslēgt ārējo
  3. Iekšējā summa

Kursa navigācija

Viktorīna — MAIN izmantošana   |   Privāts palīgs