Go1.16正式发布了,当晚就被各种技术公众号,公司研发讨论组刷屏,其实我不是个对新事物特别敏感的人,但是好奇心还是有的,而且!想着成为一名优秀的研发,对新技术的敏感度
还是要有的,所以也便仔细研读了更新公告, 简单整理一下几个改动的点,顺序按照自己所做的项目的涉及,以及影响面:
- GO111MODULE 环境变量现在默认为 on。可通过将 GO111MODULE 设置为 auto 切换回旧行为。
据说96% 的 Go 开发者使用gomod
,但我们公司还有一些十分老的项目是依赖 gopath
的,如果要升级到1.16版本,记得同时要改一下环境变量
- 现在支持使用新的 //go:embed 指令来将静态文件和文件树作为最终可执行文件的一部分内嵌,实现真正的只有一个可执行文件。 embed文档
go build
和go test
默认情况下不再修改 go.mod 和 go.sum。可通过go mod tidy
,go get
或者手动完成go install
被设计为“用于构建和安装二进制文件”,go get
则被设计为 “用于编辑 go.mod 变更依赖”,并且使用时,应该与-d
参数共用go install
命令可以接受一个版本后缀- 增加了对增加了对macOS ARM64的支持