El identificador en blanco `_`
Parte de la sección Lógica y Flujo del Journey de GO de Coddy — lección 55 de 68.
A veces necesitas importar un paquete no para usar sus funciones o variables exportadas, sino para activar sus efectos secundarios. El efecto secundario más común es ejecutar la función init del paquete, la cual se ejecuta automáticamente cuando se importa el paquete.
Go proporciona el identificador en blanco _ para este propósito. Cuando importas un paquete con el identificador en blanco, Go importa el paquete y ejecuta cualquier código de inicialización, pero no requiere que uses ninguno de sus identificadores exportados.
import _ "database/sql/driver"Esto es particularmente útil cuando necesitas que un paquete se registre a sí mismo con otro sistema o realice tareas de configuración, pero no llamas directamente a ninguna de sus funciones en tu código. Sin el identificador en blanco, Go te daría un error de compilación por importar un paquete no utilizado.
El identificador en blanco le dice a Go: "Importa este paquete por sus efectos secundarios, pero no lo referenciaré directamente en mi código". Esto mantiene tus importaciones limpias mientras sigues obteniendo el comportamiento de inicialización que necesitas.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Hoja de referencia
Usa el identificador en blanco _ para importar paquetes por sus efectos secundarios sin usar sus funciones exportadas:
import _ "database/sql/driver"Esto importa el paquete y ejecuta su código de inicialización sin requerir que uses ninguno de sus identificadores exportados. Es útil cuando los paquetes necesitan registrarse con otros sistemas o realizar tareas de configuración.
Pruébalo tú mismo
Esta lección no incluye un desafío de código.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Flujo de control avanzado
Switch con `fallthrough`Salir de bucles anidadosContinuar un bucle específicoLa sentencia `goto`Repaso: Control de bucles avanzado4Proyecto: Lista de tareas sencilla
Configuración del proyectoAñadir una tarea2Estructuras y Métodos
Definición de métodos en estructurasReceptores de valorReceptores de punteroElegir receptoresMétodos vs FuncionesResumen - Comportamiento de estructuras5Mapas en profundidad
Mapas de StructsPunteros como valores de MapVerificación de Maps NilComparación de MapsResumen - Contador de frecuencia de palabras3Interfaces (Conceptos básicos)
¿Qué es una interfaz?Definir una interfazImplementar una interfazUso de tipos de interfazInterfaz vacíaAserciones de tipoType SwitchResumen: Formas y comportamientos6Go idiomático: Sets
El modismo de Set en GoCrear un SetAñadir a un SetComprobar pertenenciaEliminar de un SetIterar sobre un SetResumen: Nombres de usuario únicos9Paquetes y Ámbito
¿Qué es un paquete?Exportado vs. No exportadoCrear un paquete simpleAlias de paquetesEl identificador en blanco `_`La función `init`Repaso - Construir una utilidad