Ce n'est un trait de soulignement en face d'une instruction import veux dire?
J'ai vu cet exemple de sqlite3
à GitHub
:
import (
"database/sql"
"fmt"
_ "github.com/mattn/go-sqlite3"
"log"
"os"
)
et n'arrive pas à trouver ce que l'underscore devant une instruction import moyens.
- C'est pas pertinente à cette question. (B) Ne jamais le faire; la seule fois où c'est utile, c'est dans de très rares cas impliquant des fichiers de test, partout ailleurs c'est une très mauvaise idée.
Vous devez vous connecter pour publier un commentaire.
Réponse courte:
C'est pour l'importation d'un package uniquement pour ses effets secondaires.
De l'Aller Spécification:
Dans sqlite3
Dans le cas de allez-sqlite3, le trait de soulignement à l'importation est utilisé pour les effets secondaires de l'enregistrement de la
sqlite3
pilote comme un pilote de base de données dans leinit()
fonction, sans importer d'autres fonctions:Une fois qu'il est enregistré de cette façon, sqlite3 peut être utilisé avec la bibliothèque standard du
sql
interface dans votre code comme dans l'exemple:Tandis que d'autres réponses décrit complètement, pour "Show me The Code" personnes, cela signifie en gros: création d'un package de variables de niveau et d'exécuter les
init
fonction de la formule.Et (le cas échéant) la hiérarchie de paquet les variables de niveau &
init
fonctions de packages, ce paquet est importé.Le seul effet secondaire que d'un package peut faire, sans pour autant être appelé, à l'est par la création de variables de niveau (public ou privé) et à l'intérieur c'est
init
fonction.Note: Il y a un truc pour exécuter une fonction avant même
init
fonction. Nous pouvons utiliser l'ensemble des variables de ce par l'initialisation d'entre eux à l'aide de cette fonction.https://golang.org/doc/effective_go.html#blank
C'est un travail en cours, ou importés en vue de les effets secondaires. Dans ce cas, je crois que c'est pour les effets secondaires, comme décrit dans la doc.