Курс языка программирования Raku / Продвинутый уровень / Модули / Пакеты и пространства имён
Пакеты и модули
Ключевое слово package вводит пространство имён. Всё,
что объявлено внутри него с помощью our, становится частью
этого пространства имён и может быть доступно извне через имя пакета и
разделитель :::
package Maths {
our $pi = 3.14;
our sub double($x) { $x * 2 }
}
say $Maths::pi; # 3.14
say Maths::double(5); # 10К переменной обращаются как $Maths::pi — сигил, затем
имя пакета, затем имя переменной. Подпрограмма вызывается как
Maths::double(...).
И package, и module создают пространство
имён; они различаются тем, что ещё они делают. module —
обычный выбор для единицы повторно используемого кода, тогда как простой
package — это просто пространство имён без ничего лишнего.
(class, с которым вы познакомитесь в следующей части, тоже создаёт пространство имён и
добавляет поверх него объектно-ориентированный механизм.)
module Greet {
our sub hello { 'hi' }
}
say Greet::hello; # hiТаким образом, пространство имён, которое вы получали от
module, — это тот же механизм, который package
предоставляет сам по себе. Выбор между ними — в основном вопрос
намерения: module для библиотек, package для
простого пространства имён, а когда дело доходит до объектов —
class для типов.
Практика
Пройдите 1 тест по содержанию этой темы.
Навигация по курсу
← Пакеты и пространства имён | Тест — Пакеты →
💪 Или перейдите сразу к упражнениям этого
раздела.