Курс 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 тест за змістом цієї теми.
Навігація курсом
← Написання трейту | Тест — Прагми →
💪 Або перейдіть одразу до вправ цього
розділу.