Lewati ke konten

Impor dan Ekspor

Al final de un archivo declara qué elementos estarán disponibles para otros módulos.

entero sumar_entero(entero a, entero b) {
retornar a + b
}
objeto Usuario {
privado:
texto nombre
entero edad
libre número var saldo = 0
publico:
Usuario(texto nombre, entero edad) {
ambiente.nombre = nombre
ambiente.edad = edad
}
texto obtener_nombre() {
retornar ambiente.nombre
}
entero obtener_edad() {
retornar ambiente.edad
}
}
// Instancia de objeto
Usuario instancia_usuario = nuevo Usuario("Juan", 30)
// Declaración variable
texto saludo = "Hola, Quetzal!"
exportar {
// Exportar función
sumar_entero,
// Exportar definición de objeto
Usuario,
// Exportar instancia de objeto
instancia_usuario,
// Exportar variable
saludo
}

Puedes exportar funciones, objetos, instancias y variables.

importar {
sumar_entero,
Usuario,
instancia_usuario,
saludo como texto_saludo
} desde "exportar.qz"
  • Las llaves listan los símbolos que deseas usar.
  • como permite asignar un alias local.
  • La ruta puede ser relativa (./modulos/exportar.qz) o un módulo nativo como "quetzal/matemática".
importar {
Matemática
} desde "quetzal/matemática"
número resultado = Matemática.sumar(2, 3)

Los módulos nativos se distribuyen con el intérprete y no requieren permisos adicionales.

  • Si intentas importar un símbolo no exportado, el intérprete mostrará un error indicando que el elemento no está disponible.
  • Las rutas deben terminar en .qz cuando se trata de archivos del sistema.
  • El intérprete mantiene un caché de módulos; los cambios en un archivo requieren volver a ejecutar el programa.
  • Evita importaciones circulares. Organiza el código en capas o utiliza módulos intermedios para compartir dependencias comunes.