Raku-Kurs / Fortgeschritten / Subroutinen
Verschachtelte Unterprogramme
Eine Unterroutine kann innerhalb einer anderen Unterroutine definiert werden. Eine verschachtelte Unterroutine ist eine normale Unterroutine, aber sie ist nur innerhalb der Unterroutine sichtbar, die sie enthält.
sub outer {
sub inner {
say 'I am the inner subroutine';
}
inner;
}
outer;Das Programm gibt aus:
I am the inner subroutineHier wird inner innerhalb von outer
deklariert, und outer ruft sie auf. Das funktioniert, weil
inner im gesamten Körper von outer im
Gültigkeitsbereich liegt.
Außerhalb von outer existiert der Name
inner jedoch nicht. Das folgende Programm lässt sich nicht
kompilieren:
sub outer {
sub inner { 42 }
}
inner; # error: Undeclared routine: innerVerschachtelung ist nützlich, wenn eine Hilfsroutine nur von einer einzigen Unterroutine benötigt wird. Sie darin zu belassen, macht deutlich, dass es sich um ein privates Detail handelt, und verhindert, dass sie versehentlich von anderswo aufgerufen wird.
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Übungen
Dieser Abschnitt enthält 3 Übungen. Sehen Sie sich alle Themen dieses Abschnitts an, bevor Sie mit den Übungen beginnen.