Курс Raku / Розширені / Порядок виконання

Фейзери

Фазер — це особливий блок, який виконується автоматично в певну мить життя програми, а не там, де він з’являється у вихідному коді. Фазер не викликають; ви лише кажете, коли його код має виконатися, назвавши блок.

Найпоширеніші фазери позначають етапи програми в цілому:

  • BEGIN виконується якомога раніше, поки програма ще компілюється;
  • INIT виконується один раз на початку запуску, перед основним кодом;
  • END виконується один раз у самому кінці, після завершення основного коду.

Наведена програма розставляє ці фазери серед звичайних операторів. Зверніть увагу, що вивід не відповідає порядку рядків у файлі:

say 'main body';
BEGIN say 'BEGIN';
END say 'END';
INIT say 'INIT';

Програма виводить:

BEGIN
INIT
main body
END

BEGIN виконується першим, під час компіляції. Далі, під час виконання, INIT спрацьовує перед основним тілом. Потім друкує основне тіло, а END виконується останнім, хоч би де його було записано.

Поширене застосування END — вивести підсумок або щось прибрати перед самим виходом із програми, тоді як BEGIN стає в пригоді для роботи, яка має відбутися раніше за все інше.

Практика

Виконайте 1 тест за змістом цієї теми.

Вправи

У цьому розділі 3 вправи. Перш ніж братися до практики, вивчіть усі теми розділу.

  1. Фінальне повідомлення
  2. Спочатку BEGIN
  3. Порядок END

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

Порядок виконання   |   Фінальне повідомлення