Lors de l'importation de packages GO, vous pouvez utiliser une importation nommée (sans soulignement) ou une importation vierge (avec un soulignement). La principale différence réside dans la façon dont le contenu du package importé est mis à la disposition de votre code.
a nommé Import , par exemple import "fmt"
, rend tous les identificateurs exportés (fonctions, types, constantes, etc.) à partir du package fmt
directement accessible dans votre package actuel. Vous pouvez les utiliser directement par leurs noms (par exemple, fmt.Println()
).
a Importation vierge , par exemple import _ "fmt"
, importe également le package fmt
, mais il ne fait pas ses identifiants exportés directement accessibles. Le seul effet est que la fonction init()
du package (s'il existe) sera exécutée. Ceci est crucial pour les packages qui effectuent des effets secondaires tels que l'enregistrement des gestionnaires ou l'initialisation de l'état global, sans polluer l'espace de noms actuel avec leurs symboles exportés. Vous ne pouvez pas appeler directement fmt.Println()
après une importation vierge de fmt
.
Le choix entre une importance nommée et une importation vide dépend entièrement de votre intention:
init()
. Ceci est souvent utilisé pour les packages qui effectuent des tâches d'initialisation, tels que l'enregistrement des gestionnaires HTTP (par exemple, avec des bibliothèques comme net/http
) ou la configuration des connexions de base de données. Vous n'avez pas besoin d'accéder aux fonctions ou types exportés du package. L'utilisation d'une importation vierge maintient votre espace de noms plus propre et évite les conflits de dénomination potentiels. Par exemple, si vous avez une fonction appelée Print
et fmt
est importée, vous auriez une collision de nom. Essentiellement, les importations vierges sont un moyen de tirer parti des effets secondaires de l'initialisation d'un package sans encombrement sur l'espace de code et de maintenance. Les importations améliorent considérablement l'organisation du code et la maintenabilité, en particulier dans les projets plus importants:
L'utilisation de soulignements dans les importations de package GO a un impact négligeable sur les performances ou le temps de compilation. Le compilateur Go est très optimisé pour gérer efficacement les importations nommées et vierges. La seule différence est qu'avec une importation vierge, le code du package importé est toujours chargé et sa fonction init()
est exécutée, mais ses membres exportés ne sont pas ajoutés à la table de symbole de votre package. Cette surcharge mineure est insignifiante par rapport au temps d'exécution global et au processus de compilation. La lisibilité et la maintenabilité du code améliorées l'emportent de loin sur toute considération de performance mineure.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!