通常一个Go语言项目会处理两个版本的Go语言:
- 主机上安装的Go语言版本
go.mod
中定义的Go语言的最低版本
我不太清楚什么时候升级go.mod
中的版本,什么时候不升级(如果是这样的话)。例如,如果我本地安装了Go语言1.16.9,在go.mod
文件中设置go 1.19
是否有意义?go.mod
中的Go语言版本是否应该与本地安装的Go语言版本相同?它可以更高还是更低?
让我感到困惑的是minimum version of Go required by the current module
这个术语,也就是说,这是否类似于Android有一个最低兼容性版本?go.mod
中较低的版本是否意味着该模块可以安装在更广泛的机器上,这是一件好事吗?
2条答案
按热度按时间tpxzln5u1#
理想情况下,您希望使用最低版本,您觉得舒适。
如果一个新的标准库函数被新版本的Go语言锁定,那么你可能会认为升级Go语言以使用这个函数是很重要的。
但是你应该注意到,当你升级Go语言的版本时,你会把新版本强加给你的模块的使用者,你可能不在乎,但是如果你在乎,那么为了服务最大的用户,使用最低版本是有意义的。
7hiiyaii2#
这要看情况。
1.使用GoLand这样的IDE,可以设置与本地计算机上安装的版本不同的Go语言版本。IDE还将下载并安装选定的版本。但该版本在IDE会话中有效。因此,go.mod 文件的版本可以与最初安装的Go语言版本不同
1.否则,如果您的机器上只有一个版本,比如1.16.9,而您希望在 * go.mod * 中使用v1.19,则需要安装v1.19,或者在 * go.mod * 中降级
1.另一个问题是你是否应该为你的项目升级Go语言版本。同样,这取决于你的项目。我有一些项目依赖于更高版本,所以我不得不升级我当前项目的Go语言版本。随着版本的变化,标准的Go语言库也会有不同。我在不同版本中面临的一个共同挑战是依赖关系的解决。
所以你可能也要注意这些。