给出以下go.mod文件:
module foo
go 1.12
require (
github.com/bar/baz v1.0.0
github.com/rat/cat v1.0.0
)
go 1.12
表示什么?是否可以防止针对任何其他版本的Go编译foo
模块?还是仅仅是foo
推荐/必需的Go版本的指示器?是每当发布新版本的go(每6个月)时我们就应该更新的指令吗?
答案 0 :(得分:3)
应该按照最低所需的Go版本考虑。如果您使用相同或更高版本的Go进行构建,则Go 1 compatibility promise承诺的一切都应该没问题。如果使用较低版本进行构建,则构建失败将出现错误消息:
go.mod文件中的go指令现在指示该模块中文件使用的语言版本。如果不存在现有版本,它将设置为当前版本(转到1.12)。如果模块的go指令指定的版本比使用中的工具链更新,则go命令将尝试构建软件包,无论如何,并且仅在构建失败时才会记录不匹配。 Go 1.12 Release Notes