Курс по 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 →
💪 Или преминете направо към упражненията в този
раздел.