Kurso de Raku / Progresinta / Moduloj / Bazaj konoj pri moduloj
Importado
Estas pli ol unu maniero alporti modulon en programon. La tri
deklaroj use, need kaj require
diferencas laŭ tio, kiam la modulo estas ŝargata kaj
kion ĝi disponebligos.
use
Vi jam renkontis use. Ĝi ŝargas la modulon je
kompiltempo kaj importas ĝiajn eksportitajn nomojn, do ili estas vokitaj
rekte:
use Greeting;
say hello('Anna'); # Hello, Anna!need
need ankaŭ ŝargas la modulon je kompiltempo, sed ĝi
ne importas la eksportitajn nomojn. Vi ankoraŭ atingas la
our-variablojn de la modulo per la nomo de la modulo:
need Greeting;
say $Greeting::version; # 1.0Post need Greeting, nuda hello(...) ne
estus rekonata, ĉar nenio estis importita — nur la kvalifikitaj nomoj,
kiel $Greeting::version, estas disponeblaj.
require
require ŝargas la modulon je rultempo anstataŭ
je kompiltempo. Tio utilas, kiam vi ne scias ĝis la rulado de la
programo, ĉu modulo estos bezonata, ekzemple kiam ĝia nomo estas
decidata per uzanta enigo.
Ĉar la ŝargado okazas je rultempo, nenio estas importita aŭtomate. Listigi la simbolojn, kiujn vi volas, en angulaj krampoj post la nomo alportas ilin, do ili povas esti vokitaj rekte:
require Greeting <&hello>;
say hello('Anna'); # Hello, Anna!Por ĉiutaga uzo, use estas tio, kion vi volas;
need kaj require estas tie por la malpli oftaj
kazoj.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Kvizo —
use | Kvizo —
use kontraŭ need →
💪 Aŭ iru rekte al la ekzercoj de ĉi tiu
sekcio.