Курс Raku / Розширені / Модулі / Основи модулів
Імпортування
Існує не один спосіб внести модуль до програми. Три оператори —
use, need та require — різняться
тим, коли модуль завантажується і що він робить
доступним.
use
З use ви вже зустрічалися. Він завантажує модуль під час
компіляції й імпортує його експортовані імена, тож їх можна викликати
напряму:
use Greeting;
say hello('Anna'); # Hello, Anna!need
need теж завантажує модуль під час компіляції, але
не імпортує експортованих імен. До змінних our
модуля ви й далі дістаєтеся через ім’я модуля:
need Greeting;
say $Greeting::version; # 1.0Після need Greeting голий hello(...) не був
би розпізнаний, бо нічого не імпортовано — доступні лише кваліфіковані
імена, як-от $Greeting::version.
require
require завантажує модуль під час виконання, а
не під час компіляції. Це корисно, коли ви до самого запуску програми не
знаєте, чи знадобиться модуль, — наприклад, коли його ім’я визначає
користувацький ввід.
Оскільки завантаження відбувається під час виконання, нічого не імпортується автоматично. Перелік потрібних символів у кутових дужках після імені підтягує їх, тож їх можна викликати напряму:
require Greeting <&hello>;
say hello('Anna'); # Hello, Anna!Для щоденного вжитку вам потрібен use; need
і require існують для рідкісніших випадків.
Практика
Виконайте 1 тест за змістом цієї теми.
Навігація курсом
← Тест —
use | Тест —
use проти need →
💪 Або перейдіть одразу до вправ цього
розділу.