Курс языка программирования 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


💪 Или перейдите сразу к упражнениям этого раздела.