Курс Raku / Розширені / Порядок виконання / Блокові фейзери / Вправи / Прибирання при виході

Розв’язання: Прибирання при виході

Ось можливий розв’язок завдання.

Код

sub work {
    LEAVE say 'Cleanup';

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

work();

🦋 Вихідний код можна знайти у файлі clean-up-on-leave.raku.

Вивід

Working
Cleanup

Коментарі

  1. Після того як Working надруковано, return негайно виходить з підпрограми, тому never reached ніколи не друкується.

  2. Незважаючи на те, що тіло було залишено достроково, фазер LEAVE все одно спрацьовує при виході, друкуючи Cleanup. Саме ця гарантія робить LEAVE правильним місцем для звільнення ресурсів — він запускається незалежно від того, як завершується блок.

Навігація курсом

Прибирання при виході   |   Вхід у блок