Solución:
En Go no importa tipos ni funciones, importa paquetes (ver Especificaciones: Declaraciones de importación).
Un ejemplo de declaración de importación:
import "container/list"
Y al importar un paquete, obtiene acceso a todos sus exportado identificadores y puede referirse a ellos como packagename.Identifiername
, por ejemplo:
var mylist *list.List = list.New()
// Or simply:
l := list.New()
Hay algunos trucos en la declaración de importación, por ejemplo, haciendo:
import m "container/list"
Puede hacer referencia a los identificadores exportados con "m.Identifiername"
, p.ej
l := m.New()
También haciendo:
import . "container/list"
Puede omitir el nombre del paquete por completo:
l := New()
Pero solo utilícelos “en caso de emergencia” o cuando haya colisiones de nombres (que son raras).
Lo que @icza dijo arriba más:
Con Go 1.9 hay alias de tipo que le permiten importar tipos de paquetes y alias en lo que parece local tipos:
package.go
contenido:
type A struct {
X, Y int
}
main.go
contenido:
...
import myTypes "path/to/package"
// Note the equal sign (not empty space)
// It does NOT create a new "subclass"
// It's an actual alias that is local.
// Allows you to avoid whole-sale `import . "path/to/package"` which imports all objects from there into local scope.
type A = myTypes.A
...