Я пытаюсь понять, как организовать код go, используя "внутренние" пакеты. Позвольте мне показать, какая у меня структура:
project/
internal/
foo/
foo.go # package foo
bar/
bar.go # package bar
main.go
# here is the code from main.go
package main
import (
"project/internal/foo"
"project/internal/bar"
)
project/ находится вне дерева GOPATH. Независимо от пути, который я пытаюсь импортировать из main.go ничего не работает, единственным main.go случаем является import "./internal/foo|bar". Я думаю, что я делаю что-то неправильно или вообще ошибаюсь в "внутренней" идее пакета. Может, кто-нибудь прояснит ситуацию, пожалуйста?
ОБНОВИТЬ
Приведенный выше пример правильный, единственное, что мне нужно, - это разместить project/ папку под $GOPATH/src. Итак, это путь импорта, так как project/internal/foo|bar работоспособна, если мы импортируем ее только из project/ поддерева, а не извне.