Ответ 1
В Go вы не импортируете типы или функции, вы импортируете packages (см. Spec: Импорт объявлений).
Пример объявления импорта:
import "container/list"
И импортируя пакет, вы получаете доступ ко всем его экспортированным идентификаторам, и вы можете ссылаться на них как packagename.Identifiername
, например:
var mylist *list.List = list.New()
// Or simply:
l := list.New()
В объявлении импорта есть некоторые трюки, например:
import m "container/list"
Вы можете ссылаться на экспортированные идентификаторы с помощью "m.Identifiername"
, например.
l := m.New()
Также:
import . "container/list"
Вы можете полностью исключить имя пакета:
l := New()
Но используйте их только "в экстренном случае" или при столкновении имен (которые встречаются редко).