登录
首页 >  Golang >  Go问答

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

来源:Golang技术栈

时间:2023-04-15 16:06:58 482浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《在 Go 中强制使用特定的导入路径》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

新的 Go 程序员在这里——如果这是陈旧的领域,我深表歉意,但我的谷歌搜索没有找到我正在寻找的答案。

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

长版:我最近尝试从以下 GitHub 存储库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”

ie 告诉 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"

示例:https ://github.com/golang/crypto/blob/master/bcrypt/bcrypt.go#L7

// 编辑

此功能的设计文档是[https://docs.google.com/document/d/1jVFkZTcYbNLaTxXD9OcGfn7vYv5hWtPx9

lTx1gPMs/edit](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

文中关于golang的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《在 Go 中强制使用特定的导入路径》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表