Kurso de Raku / Progresinta / Moduloj / Bazaj konoj pri moduloj / Exercises / Ŝargi je rultempe
Solvo: Ŝargi je rultempe
Jen ebla solvo de la tasko.
Kodo
La programo, require-import.raku:
sub MAIN(Bool :$quiet) {
if $quiet {
say 'Silence.';
}
else {
require Greeting <&hello>;
say hello('Sam');
}
}🦋 Vi povas trovi ambaŭ fontdosierojn en la dosierujo exercises/advanced/modules-basics/require-at-runtime.
Eligo
$ raku -I. require-import.raku
Hello, Sam!
$ raku -I. require-import.raku --quiet
Silence.Komentoj
requireŝargas la modulon je rultempo anstataŭ je kompiltempo. Memstare ĝi importas nenion, kial nudahelloestus nekonata.La listo
<&hello>diras alrequireimporti tiun unu simbolon, do post la instrukciohello('Sam')povas esti vokata rekte, donanteHello, Sam!.Jen por kio
requireservas: ĉar ĝi ruliĝas je rultempe, ĝi povas sidi ene deif. Kiam--quietestas donita, tiu branĉo estas preterlasata kaj la modulo neniam estas ŝargata — io, kion kompiltempausene povus eviti.