Raku-Kurs / Fortgeschritten / Kontrollfluss / Block-bezogene Phasers / Exercises / Beim Verlassen aufräumen

Lösung: Beim Verlassen aufräumen

Hier ist eine mögliche Lösung der Aufgabe.

Code

sub work {
    LEAVE say 'Cleanup';

    say 'Working';
    return;
    say 'never reached';
}

work();

🦋 Du findest den Quellcode in der Datei clean-up-on-leave.raku.

Ausgabe

Working
Cleanup

Kommentare

  1. Nachdem Working ausgegeben wurde, verlässt return die Subroutine sofort, sodass never reached nie ausgegeben wird.

  2. Obwohl der Rumpf vorzeitig verlassen wurde, wird der LEAVE-Phaser beim Verlassen trotzdem ausgelöst und gibt Cleanup aus. Diese Garantie ist genau der Grund, warum LEAVE der richtige Ort ist, um Ressourcen freizugeben — er wird ausgeführt, egal wie der Block endet.

Kursnavigation

Beim Verlassen aufräumen   |   Einen Block betreten