强制Go中的特定导入路径

强制Go中的特定导入路径,go,Go,新的围棋程序员在这里——如果这是一个陈旧的领域,我道歉,但是我的谷歌搜索没有找到我想要的答案 简短版本:作为核心Go项目外部的程序员,我可以强制使用特定名称导入我的包吗。如果是,怎么做 长版本:我最近尝试从安装bcrypt包,使用以下go-get go get github.com/golang/crypto 软件包已正确下载到我的工作区中,但当我尝试导入它时,出现以下错误 $go run main.go main.go:10:2:目录/path/to/go/src/github.com/go

新的围棋程序员在这里——如果这是一个陈旧的领域,我道歉,但是我的谷歌搜索没有找到我想要的答案

简短版本:作为核心Go项目外部的程序员,我可以强制使用特定名称导入我的包吗。如果是,怎么做

长版本:我最近尝试从安装
bcrypt
包,使用以下
go-get

go get github.com/golang/crypto
软件包已正确下载到我的工作区中,但当我尝试导入它时,出现以下错误

$go run main.go main.go:10:2:目录/path/to/go/src/github.com/golang/crypto/bcrypt中的代码需要导入“golang.org/x/crypto/bcrypt”

i、 e.有人告诉Go,这个软件包应该与
golang.org/x/crypto/bcrypt
一起导入。这让我知道我真正想要的是

go get golang.org/x/crypto/bcrypt

我想在我自己的软件包中做一些类似的事情——这个功能是否内置于Go打包中?或者
crypto/bcrypt
的作者是否在运行时做了一些事情来检测和拒绝无效的包导入名称?

是的,它是内置的,我似乎找不到实现文档(这是1.5或1.6中相对较新的功能),但语法是:

package name // import "your-custom-path"
例如:

//编辑

此功能的设计文档如下所示

//编辑


@JimB指出,在go1.4发行说明中:

,在go1.4发行说明中:@JimB coulda发誓我检查过了,为了更清晰,我会将其添加到帖子中。