gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 02:22:19 26 4
gpt4 key购买 nike

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

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

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

go get github.com/golang/crypto

包正确下载到我的工作区,但是当我尝试导入它时,出现以下错误

$ go run main.go main.go:10:2: code in directory /path/to/go/src/github.com/golang/crypto/bcrypt expects import "golang.org/x/crypto/bcrypt"

即有人告诉 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

//编辑

@JimB 指出 https://golang.org/cmd/go/#hdr-Import_path_checking ,并在 go1.4 发行说明中:https://golang.org/doc/go1.4#canonicalimports

关于go - 在 Go 中强制使用特定的导入路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42189723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com