如果 `go.mod` 中的版本低于实际版本,`go build` 是否会失败?

我已经在文件中go 1.15指定了。go.mod

当前的编译器版本如下:

➜ go version
go version go1.14.4 linux/amd64

然而,go build仍然成功地构建了一个二进制文件。

这是预期的行为吗?不确定我可以在模块描述中找到解释。


烙印99
浏览 210回答 1
1回答

九州编程

是的,这是预期的行为。go.mod 更像是一个依赖关系和包管理的工具,而不是一个管理构建过程输出的工具。这就是为什么,如果您不使用 1.15 中的任何功能,它仍然应该能够被构建。有趣的是,如果您尝试将项目设置为比您正在使用的版本更高的版本(即使用 go tool 1.14 构建的 1.15),并且您在您的项目中标记go.mod它需要使用更高版本,它'将出现在构建过程中:# temp/test-go-build./main.go:10:15: o.Redacted undefined (type url.URL has no field or method Redacted)note: module requires Go 1.15所以 go 工具会尽力满足您的需求,但不会阻止您到达您想去的地方(明白了吗?)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go