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

  1. require ŝargas la modulon je rultempo anstataŭ je kompiltempo. Memstare ĝi importas nenion, kial nuda hello estus nekonata.

  2. La listo <&hello> diras al require importi tiun unu simbolon, do post la instrukcio hello('Sam') povas esti vokata rekte, donante Hello, Sam!.

  3. Jen por kio require servas: ĉar ĝi ruliĝas je rultempe, ĝi povas sidi ene de if. Kiam --quiet estas donita, tiu branĉo estas preterlasata kaj la modulo neniam estas ŝargata — io, kion kompiltempa use ne povus eviti.

Kursa navigado

Ŝargi je rultempe   |   Modula introspekto