新的 Go 程序员在这里——如果这是陈旧的领域,我深表歉意,但我的谷歌搜索没有找到我正在寻找的答案。简短版本:作为核心 Go 项目外部的程序员,我能否强制我的包以特定名称导入。如果是这样,怎么做?长版:我最近尝试bcrypt从以下 GitHub 存储库安装包,具有以下内容go getgo 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”ie 告诉 Go 这个包应该用golang.org/x/crypto/bcrypt. 这让我知道我真正想要的是go get golang.org/x/crypto/bcrypt我想在我自己的包中做类似的事情——这个功能是内置在 Go 包中的吗?或者作者是否crypto/bcrypt在运行时做一些事情来检测和拒绝无效的包导入名称?
1 回答
喵喔喔
TA贡献1735条经验 获得超5个赞
是的,它是内置的,我似乎找不到实现文档(它是 1.5 或 1.6 中相对较新的功能)但是语法是:
package name // import "your-custom-path"
示例:https : //github.com/golang/crypto/blob/master/bcrypt/bcrypt.go#L7
// 编辑
此功能的设计文档是https://docs.google.com/document/d/1jVFkZTcYbNLaTxXD9OcGfn7vYv5hWtPx9--lTx1gPMs/edit
// 编辑
@JimB 指出https://golang.org/cmd/go/#hdr-Import_path_checking,并在 go1.4 发行说明中:https ://golang.org/doc/go1.4#canonicalimports
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报
0/150
提交
取消