L'identificateur blanc `_`
Fait partie de la section Logique & Flux du Journey GO de Coddy — leçon 55 sur 68.
Parfois, vous devez importer un paquet non pas pour utiliser ses fonctions ou variables exportées, mais pour déclencher ses effets secondaires. L'effet secondaire le plus courant est l'exécution de la fonction init du paquet, qui s'exécute automatiquement lorsque le paquet est importé.
Go fournit l'identificateur vide _ à cet effet. Lorsque vous importez un paquet avec l'identificateur vide, Go importe le paquet et exécute tout code d'initialisation, mais ne vous oblige pas à utiliser l'un de ses identificateurs exportés.
import _ "database/sql/driver"Ceci est particulièrement utile lorsque vous avez besoin qu'un package s'enregistre lui-même auprès d'un autre système ou effectue des tâches de configuration, mais que vous n'appelez directement aucune de ses fonctions dans votre code. Sans l'identificateur blanc, Go vous donnerait une erreur de compilation pour l'importation d'un package inutilisé.
L'identifiant vide indique à Go : « Importe ce package pour ses effets secondaires, mais je ne le référencerai pas directement dans mon code. » Cela permet de garder vos imports propres tout en obtenant le comportement d'initialisation dont vous avez besoin.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Aide-mémoire
Utilisez l'identifiant vide _ pour importer des packages pour leurs effets secondaires sans utiliser leurs fonctions exportées :
import _ "database/sql/driver"Ceci importe le package et exécute son code d'initialisation sans vous obliger à utiliser l'un de ses identifiants exportés. Utile lorsque les packages doivent s'enregistrer auprès d'autres systèmes ou effectuer des tâches de configuration.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Structures de contrôle avancées
Switch avec `fallthrough`Sortir de boucles imbriquéesContinuer une boucle spécifiqueL'instruction `goto`Récapitulatif - Contrôle de boucle avancé4Projet : Liste de tâches simple
Configuration du projetAjouter une tâche2Structures et Méthodes
Définir des méthodes sur des structuresReceveurs par valeurReceveurs par pointeurChoisir les receveursMéthodes vs FonctionsRécapitulatif - Comportement des structures5Les Maps en profondeur
Maps de StructsPointeurs comme valeurs de MapTester les Maps NilComparer des MapsRécapitulatif - Compteur de fréquence de mots3Interfaces (Les bases)
Qu'est-ce qu'une Interface ?Définir une InterfaceImplémenter une InterfaceUtiliser les types d'InterfaceInterface videAssertions de typeType SwitchRécapitulatif - Formes et comportements6Go idiomatique : Les ensembles
L'idiome des ensembles en GoCréer un ensembleAjouter à un ensembleVérifier l'appartenanceSupprimer d'un ensembleItérer sur un ensembleRécapitulatif - Noms d'utilisateur uniques9Packages et Portée
Qu'est-ce qu'un Package ?Exporté vs Non-exportéCréer un Package SimpleAliasing de PackageL'identificateur blanc `_`La fonction `init`Récapitulatif - Créer un utilitaire