Curso de Raku / Avanzado / Subrutinas
Subrutinas anidadas
Una subrutina puede definirse dentro de otra subrutina. Una subrutina anidada es una subrutina normal, pero solo es visible dentro de la subrutina que la contiene.
sub outer {
sub inner {
say 'I am the inner subroutine';
}
inner;
}
outer;El programa imprime:
I am the inner subroutineAquí inner se declara dentro de outer, y
outer la llama. Esto funciona porque inner
está en el ámbito durante todo el cuerpo de outer.
Fuera de outer, sin embargo, el nombre
inner no existe. El siguiente programa no compila:
sub outer {
sub inner { 42 }
}
inner; # error: Undeclared routine: innerLa anidación es útil cuando una rutina auxiliar solo es necesaria para una subrutina. Mantenerla dentro deja claro que es un detalle privado y evita que sea llamada desde cualquier otro lugar por error.
Práctica
Resuelve 1 cuestionario sobre el contenido de este tema.
Ejercicios
Esta sección contiene 3 ejercicios. Mira todos los temas de esta sección antes de empezar los ejercicios.