Курс 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 тест за змістом цієї теми.
Навігація курсом
← Пакети та простори імен 🆕 | Тест — Пакети →
💪 Або перейдіть одразу до вправ цього розділу.