在go模块文件(go.mod)中使用“ go”版本指令的含义是什么

时间:2019-10-02 15:25:55

标签: go go-modules

给出以下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个月)时我们就应该更新的指令吗?

1 个答案:

答案 0 :(得分:3)

应该按照最低所需的Go版本考虑。如果您使用相同或更高版本的Go进行构建,则Go 1 compatibility promise承诺的一切都应该没问题。如果使用较低版本进行构建,则构建失败将出现错误消息:

  

go.mod文件中的go指令现在指示该模块中文件使用的语言版本。如果不存在现有版本,它将设置为当前版本(转到1.12)。如果模块的go指令指定的版本比使用中的工具链更新,则go命令将尝试构建软件包,无论如何,并且仅在构建失败时才会记录不匹配。 Go 1.12 Release Notes