Курс по Raku / Напреднали / Оператори / Трейтове и прагми 🆕

Прагми

Прагмата прилича на модул, зареден с use, но вместо да внася код, тя променя правило за компилация за останалата част от текущия обхват. Включва се с use и (когато има смисъл) се изключва с no.

Най-важната прагма, strict, е включена по подразбиране в Raku: тя изисква всяка променлива да бъде декларирана преди употреба, което е причината правописна грешка в име на променлива да бъде уловена, вместо мълчаливо да създаде нова променлива.

Изключването на strict с no strict премахва това изискване, така че можете да присвоявате на променлива, която никога не е била декларирана с my:

no strict;

$x = 42;
say $x; # 42

С активирана strict по подразбиране, това голо $x = 42 би било грешка по време на компилация — Variable ‘$x’ is not declared. Редът no strict отпуска правилото за останалата част от обхващащия обхват.

Други прагми включват fatal (която превръща тихия неуспех в хвърлено изключение — удобна, когато сте се запознали с обработката на изключения), isms (за разрешаване на идиоми, заимствани от други езици) и variables (за настройка на правилата за променливи). Ефектът на прагмата е лексикален — продължава само до края на блока, в който се появява — така можете да затегнете или разхлабите правило точно за областта от код, в която го искате.

Една прагма приема аргумент: lib добавя директория към списъка, в който Raku търси при зареждане на модули — програмният еквивалент на опцията -I от командния ред:

use lib 'lib';

Ще я използвате, когато започнете да пишете и зареждате собствени модули.

Практика

Направете 1 тест върху съдържанието на тази тема.

Навигация в курса

Писане на трейт   |   Тест — Прагми


💪 Или преминете направо към упражненията в този раздел.