Курс по Raku / Напреднали / Управление на потока
Фейзъри
Phaser е специален блок, който се изпълнява автоматично в определен момент от живота на програмата, а не там, където се появява в изходния код. Вие не извиквате phaser; само казвате кога кодът му трябва да се изпълни, като именувате блока.
Най-често използваните phasers отбелязват етапи от програмата като цяло:
BEGINсе изпълнява възможно най-рано, докато програмата все още се компилира;INITсе изпълнява веднъж в началото на изпълнението, преди основния код;ENDсе изпълнява веднъж в самия край, след като основният код е завършил.
Следващата програма поставя тези phasers сред обикновени инструкции. Забележете, че изходът не следва реда на редовете във файла:
say 'main body';
BEGIN say 'BEGIN';
END say 'END';
INIT say 'INIT';Програмата отпечатва:
BEGIN
INIT
main body
ENDBEGIN се изпълнява първи, по време на компилацията. След
това, по време на изпълнение, INIT се изпълнява преди
основното тяло. Основното тяло се отпечатва следващо, а END
се изпълнява последен, независимо къде е бил написан.
Често END се използва за отпечатване на обобщение или
почистване на нещо точно преди програмата да завърши, а
BEGIN е удобен за работа, която трябва да се случи преди
всичко друго.
Практика
Направете 1 тест върху съдържанието на тази тема.
Упражнения
Този раздел съдържа 3 упражнения. Разгледайте всички теми в раздела, преди да се захванете с практиката.