Курс языка программирования 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 тест по содержанию этой темы.
Навигация по курсу
← Написание трейта | Тест — Прагмы →
💪 Или перейдите сразу к упражнениям этого
раздела.