gpt4 book ai didi

go - 为什么我使用 golang 模块,并导入一个未选择模块的模块,但 go.sum 文件有 go.mod 文件哈希?

转载 作者:行者123 更新时间:2023-12-01 22:26:49 24 4
gpt4 key购买 nike

我现在正在使用 golang 1.13 并使用 go 模块。

但是,当我导入 的包(例如,a)时不是 选择了 go 模块,在 go.sum 文件中还有两行。 Go 模块告诉我们“每个已知的模块版本都会在 go.sum 文件中产生两行。第一行给出模块版本文件树的哈希值。第二行将“/go.mod”附加到版本并给出仅模块版本的(可能是合成的)go.mod 文件的散列。go.mod-only 散列允许下载和验证模块版本的 go.mod 文件,这是计算依赖图所需的,而无需下载所有模块的源代码。”

(https://tip.golang.org/cmd/go/#hdr-Module_downloading_and_verification)。

但是这个包不是一个模块,所以它没有 go.mod 文件?例如,如果我导入不是模块的包调用“github.com/example/a”,在 go.sum 文件中,它仍然有这两行:

github.com/example/a v0.0.0-20190627063042-31896c4e4162 h1:rSqi2vQEpS+GAFKrLvmxzWW3OGlLI4hANnEf/ib/ofo=

github.com/example/a v0.0.0-20190627063042-31896c4e4162/go.mod h1:tcpxll8wcruwpPpWBbjAsWc1JbLHld/v9F+3rgLIr4c=

我的问题是,第二行是如何生成的?

最佳答案

go.sum包含预期的加密校验和
特定模块版本的内容。每次依赖
使用时,如果缺少或需要匹配,则将其校验和添加到 go.sum
go.sum 中的现有条目。

每个包/模块都是依赖项,每个依赖项都意味着使用 go.sum 中的校验和进行维护所以无论是包还是模块,它都会被维护。

源代码将在 $GOPATH/src 中下载相应的目录。

尝试 -

关于go - 为什么我使用 golang 模块,并导入一个未选择模块的模块,但 go.sum 文件有 go.mod 文件哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59496488/

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