Курс по 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 тест върху съдържанието на тази тема.
Навигация в курса
← Пакети и пространства от имена 🆕 | Тест — Пакети →
💪 Или преминете направо към упражненията в този
раздел.