четверг, 4 июля 2019 г.

GOPATH и модули в Golang, внутренние каталоги

При использовании модулей GOPATH больше не используется для разрешения импорта. Однако он все еще используется для хранения загруженного исходного кода (в GOPATH/pkg/mod) и скомпилированных команд (в GOPATH/bin).

Внутренние каталоги

Код внутри или ниже каталога с именем "internal" импортируется только кодом в дереве каталогов, корнем которого является родительский элемент "internal". Вот расширенная версия макета каталога из поста:

/home/user/go/
    src/
        crash/
            bang/              (go код в пакете bang)
                b.go
        foo/                   (go код в пакете foo)
            f.go
            bar/               (go код в пакете bar)
                x.go
            internal/
                baz/           (go код в пакете baz)
                    z.go
            quux/              (go код в пакете main)
                y.go

Код в z.go импортируется как "foo/internal/baz", но этот оператор импорта может появляться только в исходных файлах в поддереве с корнем в foo. Исходные файлы foo/f.go, foo/bar/x.go и foo/quux/y.go могут импортировать "foo/internal/baz", но исходный файл crash/bang/b.go не может.


Читайте также:


Комментариев нет:

Отправить комментарий