Curso de Raku / Avanzado / Control de flujo / Phasers de bloque / Exercises / Limpiar al salir
Solución: Limpiar al salir
Aquí tienes una posible solución a la tarea.
Código
sub work {
LEAVE say 'Cleanup';
say 'Working';
return;
say 'never reached';
}
work();🦋 Encuentra el programa en el archivo clean-up-on-leave.raku.
Salida
Working
CleanupComentarios
Después de que se imprime
Working, elreturnsale de la subrutina inmediatamente, por lo quenever reachednunca se imprime.Aunque se salió del cuerpo antes de tiempo, el phaser
LEAVEaún se dispara al salir, imprimiendoCleanup. Esta garantía es exactamente la razón por la queLEAVEes el lugar adecuado para liberar recursos: se ejecuta sin importar cómo termine el bloque.