Curso de Raku / Avanzado / Control de flujo
Phasers
Un phaser es un bloque especial que se ejecuta automáticamente en un momento particular de la vida de un programa, en lugar de donde aparece en el código fuente. No llamas a un phaser; solo indicas cuándo debe ejecutarse su código, nombrando el bloque.
Los phasers más comunes marcan etapas del programa en su conjunto:
BEGINse ejecuta lo antes posible, mientras el programa aún se está compilando;INITse ejecuta una vez al inicio de la ejecución, antes del código principal;ENDse ejecuta una vez al final, después de que el código principal ha terminado.
El siguiente programa coloca estos phasers entre instrucciones ordinarias. Observa que la salida no sigue el orden de las líneas en el archivo:
say 'main body';
BEGIN say 'BEGIN';
END say 'END';
INIT say 'INIT';El programa imprime:
BEGIN
INIT
main body
ENDBEGIN se ejecuta primero, durante la compilación. Luego,
en tiempo de ejecución, INIT se ejecuta antes del cuerpo
principal. El cuerpo principal se imprime a continuación, y
END se ejecuta al final, sin importar dónde fue
escrito.
Un uso común de END es imprimir un resumen o limpiar
algo justo antes de que el programa termine, mientras que
BEGIN es útil para trabajo que debe ocurrir antes que
cualquier otra cosa.
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.