为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 中强制使用特定的导入路径

在 Go 中强制使用特定的导入路径

Go
桃花长相依 2022-01-10 17:26:04
新的 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


查看完整回答
反对 回复 2022-01-10
  • 1 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信