199 votes

Que fait le '.' (point ou période) dans une déclaration d'importation aller faire?

Dans le didacticiel Go et dans la plupart des codes Go que j'ai consultés, les packages sont importés comme suit:

 import (
    "fmt"
    "os"
    "launchpad.net/lpad"
    ...
)
 

Mais dans http://bazaar.launchpad.net/~niemeyer/lpad/trunk/view/head:/session_test.go , le package gocheck est importé avec un . (point):

 import (
    "http"
    . "launchpad.net/gocheck"
    "launchpad.net/lpad"
    "os"    
)
 

Quelle est la signification de . (période)?

265voto

tvanfosson Points 268301

Il permet à l'identificateurs dans le package importé dans le fichier local bloc sans qualificatif.

Si explicitement un point (.) s'affiche à la place d'un nom, tout le package exporté identificateurs seront déclarés dans le fichier actuel du fichier de bloc et peut être consulté sans qualificatif.

Supposons que nous avons compilé un paquet contenant le paquet clause de forfait de mathématiques, qui exporte la fonction Sin, et installé le package compilé dans le fichier identifié par "lib/math". Ce tableau illustre comment le Péché peut être consulté dans les fichiers importer le package d'après les divers types de déclaration d'importation.

Import declaration          Local name of Sin

import   "lib/math"         math.Sin
import M "lib/math"         M.Sin
import . "lib/math"         Sin

Ref: http://golang.org/doc/go_spec.html#Import_declarations

94voto

Evan Shaw Points 7957

Voici une analogie pour ceux qui viennent de Python:

  • Go's import "os" est à peu près équivalent à Python import os
  • Go's import . "os" est à peu près équivalent à Python from os import *

Dans les deux langues, l'utilisation de cette dernière est généralement mal vue, mais il peut y avoir de bonnes raisons de le faire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X