Raku kurss / Padziļināti / Moduļi / Moduļu pamati / Exercises / Ielādēt izpildes laikā
Risinājums: Ielādēt izpildes laikā
Šeit ir iespējams risinājums uzdevumam.
Kods
Programma require-import.raku:
sub MAIN(Bool :$quiet) {
if $quiet {
say 'Silence.';
}
else {
require Greeting <&hello>;
say hello('Sam');
}
}🦋 Abus pirmkoda failus atrodiet direktorijā exercises/advanced/modules-basics/require-at-runtime.
Izvade
$ raku -I. require-import.raku
Hello, Sam!
$ raku -I. require-import.raku --quiet
Silence.Komentāri
requireielādē moduli izpildes, nevis kompilēšanas laikā. Pats par sevi tas neko neimportē, un tieši tāpēc kailshellobūtu nezināms.Saraksts
<&hello>liekrequireimportēt šo vienu simbolu, tāpēc pēc šī teikumahello('Sam')var izsaukt tieši, dodotHello, Sam!.Tieši tam
requireir domāts: tā kā tas izpildās izpildes laikā, tas var atrastiesifiekšienē. Kad dots--quiet, šis zars tiek izlaists un modulis nekad netiek ielādēts — kaut kas tāds, no kā kompilēšanas laikauseizvairīties nespētu.