Corso di Raku / Avanzato / Subroutine
Subroutine annidate
Una subroutine puo essere definita all’interno di un’altra subroutine. Una subroutine annidata e una subroutine normale, ma e visibile solo all’interno della subroutine che la contiene.
sub outer {
sub inner {
say 'I am the inner subroutine';
}
inner;
}
outer;Il programma stampa:
I am the inner subroutineQui inner e dichiarata all’interno di
outer, e outer la chiama. Questo funziona
perche inner e nello scope di tutto il corpo di
outer.
Al di fuori di outer, tuttavia, il nome
inner non esiste. Il seguente programma non riesce a
compilare:
sub outer {
sub inner { 42 }
}
inner; # error: Undeclared routine: innerL’annidamento e utile quando una routine ausiliaria e necessaria solo per una singola subroutine. Tenerla all’interno rende chiaro che si tratta di un dettaglio privato e impedisce che venga chiamata per errore da altre parti del programma.
Pratica
Risolvi 1 quiz sul contenuto di questo argomento.
Esercizi
Questa sezione contiene 3 esercizi. Guarda tutti gli argomenti di questa sezione prima di iniziare gli esercizi.