Corso di Raku / Avanzato / Moduli / Basi dei moduli
Tag di esportazione
Contrassegnare una subroutine con is export la inserisce
nel gruppo di esportazione predefinito di un modulo — i nomi
che un semplice use importa. Assegnando un tag a
is export, puoi organizzare le esportazioni in gruppi
denominati e lasciare che ogni programma scelga il set desiderato.
Un tag si scrive tra parentesi dopo is export:
unit module Greeting;
sub hello($name) is export { "Hello, $name!" }
sub goodbye($name) is export(:partings) { "Goodbye, $name!" }hello non ha tag, quindi appartiene al gruppo
predefinito; goodbye e taggato :partings.
Un semplice use importa solo il gruppo predefinito:
use Greeting; # hello is available; goodbye is notSpecificando un tag si importa quel gruppo invece — e, forse sorprendentemente, non anche quello predefinito:
use Greeting :partings; # goodbye is available; hello is notRichiedere :partings da esattamente quel gruppo. Per
importare tutto cio che un modulo esporta, usa il tag integrato
:ALL:
use Greeting :ALL; # both hello and goodbyeDue tag speciali meritano di essere conosciuti. :ALL e
supportato da ogni modulo e importa tutte le sue esportazioni.
:MANDATORY e un tag che puoi applicare a una routine che
deve essere importata indipendentemente dal tag scelto dal
chiamante.
Ogni tag e in realta un pacchetto all’interno del pacchetto
EXPORT del modulo —
Greeting::EXPORT::partings, per esempio — che e esattamente
cio che l’introspezione dei
moduli elenca. I tag permettono a un modulo piu grande di mantenere
ridotta la superficie predefinita, offrendo al contempo funzionalita
aggiuntive su richiesta.
Pratica
Risolvi 1 quiz sul contenuto di questo argomento.
Navigazione del corso
← Quiz —
use vs need | Quiz — Tag di
esportazione →
💪 Oppure vai direttamente agli esercizi di questa
sezione.