Курс Raku / Розширені / Модулі / Основи модулів
Теги експорту
Позначення підпрограми як is export кладе її до
типової групи експорту модуля — тих імен, які приносить
звичайний use. Надавши is export
мітку, ви можете розсортувати експорти по іменованих групах і
дозволити кожній програмі обрати потрібний їй набір.
Мітку записують у дужках після is export:
unit module Greeting;
sub hello($name) is export { "Hello, $name!" }
sub goodbye($name) is export(:partings) { "Goodbye, $name!" }hello не має мітки, тож належить до типової групи;
goodbye позначено міткою :partings.
Звичайний use імпортує лише типову групу:
use Greeting; # hello доступна; goodbye ніНазивання мітки імпортує натомість ту групу — і, можливо, несподівано, не типову на додачу:
use Greeting :partings; # goodbye доступна; hello ніЗапит :partings дає вам саме цю групу. Щоб підтягнути
все, що експортує модуль, скористайтеся вбудованою міткою
:ALL:
use Greeting :ALL; # і hello, і goodbyeДві особливі мітки варто знати. :ALL підтримується
кожним модулем і імпортує всі його експорти. :MANDATORY —
та, яку можна поставити на підпрограму, що має імпортуватися незалежно
від того, яку мітку обрав викликач.
Кожна мітка насправді є пакунком усередині пакунка
EXPORT модуля — наприклад,
Greeting::EXPORT::partings, — і саме це перелічує інтроспекція модулів. Мітки
дозволяють більшому модулю тримати свою типову поверхню невеликою,
водночас пропонуючи додаткові можливості на запит.
Практика
Виконайте 1 тест за змістом цієї теми.
Навігація курсом
← Тест —
use проти need | Тест — Теги
експорту →
💪 Або перейдіть одразу до вправ цього
розділу.