Curso de Raku / Avanzado / Módulos / Fundamentos de módulos
Etiquetas de exportación
Marcar una subrutina con is export la coloca en el grupo
de exportación predeterminado del módulo — los nombres que un
simple use incorpora. Al darle a is export una
etiqueta, puedes organizar las exportaciones en grupos con
nombre y dejar que cada programa elija el conjunto que desea.
Una etiqueta se escribe entre paréntesis después de
is export:
unit module Greeting;
sub hello($name) is export { "Hello, $name!" }
sub goodbye($name) is export(:partings) { "Goodbye, $name!" }hello no tiene etiqueta, por lo que pertenece al grupo
predeterminado; goodbye está etiquetada con
:partings.
Un simple use importa solo el grupo predeterminado:
use Greeting; # hello is available; goodbye is notNombrar una etiqueta importa ese grupo en su lugar — y, quizás sorprendentemente, no el predeterminado también:
use Greeting :partings; # goodbye is available; hello is notPedir :partings te da exactamente ese grupo. Para
incorporar todo lo que un módulo exporta, usa la etiqueta incorporada
:ALL:
use Greeting :ALL; # both hello and goodbyeVale la pena conocer dos etiquetas especiales. :ALL es
soportada por todos los módulos e importa todas sus exportaciones.
:MANDATORY es una que puedes colocar en una rutina que
debería importarse sin importar qué etiqueta elija el llamador.
Cada etiqueta es en realidad un paquete dentro del paquete
EXPORT del módulo —
Greeting::EXPORT::partings, por ejemplo — que es
exactamente lo que lista la introspección de módulos.
Las etiquetas permiten que un módulo grande mantenga su superficie
predeterminada pequeña mientras sigue ofreciendo características
adicionales bajo demanda.
Práctica
Resuelve 1 cuestionario sobre el contenido de este tema.
Navegación del curso
← Quiz —
use vs need | Quiz — Etiquetas de
exportación →
💪 O ve directamente a los ejercicios de esta
sección.