En el tutorial Go, y la mayoría del código Go que he visto, los paquetes se importan así:
import (
"fmt"
"os"
"launchpad.net/lpad"
...
)
Pero en http://bazaar.launchpad.net/~niemeyer/lpad/trunk/view/head:/session_test.go , el paquete gocheck se importa con un .
(punto):
import (
"http"
. "launchpad.net/gocheck"
"launchpad.net/lpad"
"os"
)
¿Cuál es el significado del .
(punto)?
Respuestas:
Permite hacer referencia a los identificadores en el paquete importado en el bloque de archivos local sin un calificador.
Ref: http://golang.org/doc/go_spec.html#Import_declarations
fuente
import "fmt"
vsimport . "fmt"
, pero en ambos casos fue del mismo tamaño para mí).Aquí hay una analogía para aquellos que vienen de Python:
import "os"
es más o menos equivalente a Pythonimport os
import . "os"
es más o menos equivalente a Pythonfrom os import *
En ambos idiomas, usar el último generalmente está mal visto, pero puede haber buenas razones para hacerlo.
fuente
Esto solo debe usarse en las pruebas.
Aquí hay alguna documentación en el wiki de Golang
Si ha generado un código simulado como con mockgen e importa el código de su paquete, y luego su paquete de prueba también importa su código de paquete, obtendrá una dependencia circular (Algo golang elige permitir que el usuario decida cómo resolverlo).
Sin embargo, si dentro de su paquete de prueba usa la notación de puntos en el paquete que está probando, ¡entonces se tratan como el mismo paquete y no hay dependencia circular!
fuente