Курс по Raku / Напреднали / Модули / Основи на модулите / Exercises / Заредете по време на изпълнение
Решение: Заредете по време на изпълнение
Ето едно възможно решение на задачата.
Код
Програмата, require-import.raku:
sub MAIN(Bool :$quiet) {
if $quiet {
say 'Silence.';
}
else {
require Greeting <&hello>;
say hello('Sam');
}
}🦋 Можете да намерите двата файла с изходния код в директорията exercises/advanced/modules-basics/require-at-runtime.
Изход
$ raku -I. require-import.raku
Hello, Sam!
$ raku -I. require-import.raku --quiet
Silence.Коментари
requireзарежда модула по време на изпълнение, а не по време на компилация. Сам по себе си не импортира нищо, затова самостоятелноhelloби било неизвестно.Списъкът
<&hello>казва наrequireда импортира този един символ, така че след оператораhello('Sam')може да бъде извикано директно, давайкиHello, Sam!.Точно за това е
require: тъй като работи по време на изпълнение, може да стои вътре вif. Когато е подаден--quiet, този клон се прескача и модулът никога не се зарежда — нещо, коетоuseпо време на компилация не би могъл да избегне.
Навигация в курса
← Заредете по време на изпълнение | Интроспекция на модули →