Cursus Raku / Geavanceerd / Besturingsstructuren / Blokgerelateerde phasers / Exercises / Opruimen bij verlaten

Oplossing: Opruimen bij verlaten

Hier is een mogelijke oplossing voor de opgave.

Code

sub work {
    LEAVE say 'Cleanup';

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

work();

🦋 Je kunt de broncode vinden in het bestand clean-up-on-leave.raku.

Uitvoer

Working
Cleanup

Opmerkingen

  1. Nadat Working is afgedrukt, verlaat de return de subroutine onmiddellijk, dus never reached wordt nooit afgedrukt.

  2. Hoewel de body vroegtijdig verlaten werd, wordt de LEAVE-phaser toch uitgevoerd bij het verlaten, en drukt Cleanup af. Deze garantie is precies waarom LEAVE de juiste plek is om resources vrij te geven — het wordt uitgevoerd ongeacht hoe het blok eindigt.

Cursusnavigatie

Opruimen bij verlaten   |   Een blok betreden