Corso di Raku / Avanzato / Controllo di flusso / Phaser di blocco / Exercises / Pulizia all’uscita
Soluzione: Pulizia all’uscita
Ecco una possibile soluzione.
Codice
sub work {
LEAVE say 'Cleanup';
say 'Working';
return;
say 'never reached';
}
work();🦋 Puoi trovare il codice sorgente nel file clean-up-on-leave.raku.
Output
Working
CleanupCommenti
Dopo che
Workingviene stampato, ilreturnesce immediatamente dalla subroutine, quindinever reachednon viene mai stampato.Anche se il corpo è stato abbandonato anticipatamente, il phaser
LEAVEviene comunque eseguito durante l’uscita, stampandoCleanup. Questa garanzia è esattamente il motivo per cuiLEAVEè il posto giusto per rilasciare le risorse: viene eseguito indipendentemente da come il blocco termina.