Go 1.16/1.17/1.18 前瞻

2020年11月12日 262点热度 0人点赞 0条评论

Go 1.16马上就要进入测试阶段了,本文将列出Go 1.16和后续版本中可能会带来的一些显著的新变化。


官方Go工具链1.16中,modules模式将被默认开启,亦即GO111MODULE环境变量的默认值将从auto改变为on。这将解决一些目前使用go命令时的尴尬 。比如在非modules感知目录下运行go get时因为自动选择了GOPATH模式而忽略了GOPROXY环境变量的尴尬情况。此尴尬情况导致很多墙外的Go包下载不下来,除非GO111MODULE环境变量被提前手动更改为on。


通过新加的//go:embed指令,官方工具链1.16将开始支持内嵌静态资源(文件或者文件夹)至生成的二进制文件中(https://github.com/golang/go/issues/41191)。为了实现此功能,标准库加入了一个新的库包"io/fs"(https://github.com/golang/go/issues/41190)。此库包改进和增强了Go标准库对文件系统的处理。


Go 1.16并没有在语言语法和语义方面带来改动。


Go工具链1.17将引入一套新的构建约束(标签)指令//go:build。旧的// +build指令将逐步被废弃(https://github.com/golang/go/issues/41184)。


另外,Go 1.17将支持形如(*[N]T)(slice_of_T_values)的转换,即从切片到切片底层数组指针的转换(https://github.com/golang/go/issues/395)。


自定义泛型至少得等到Go 1.18了。



本文首发在微信Go 101公众号,欢迎各位转载本文。Go 101公众号将不定期发表一些原创短文,包含Go语言中的事实、细节和技巧等。有意关注者请扫描下面的二维码。

图片



关于更多Go语言编程中的事实、细节和技巧,请访问《Go语言101》官方网站 https://gfw.go101.org (可点击下面的原文链接直接访问)或者项目地址 https://github.com/golang101/golang101。

因为新开的微信公众号不再支持留言,所以若有问题,可到上述项目中创建一个issue留言交流。

一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

本书PDF下载地址:https://github.com/golang101/golang101/releases


73020Go 1.16/1.17/1.18 前瞻

这个人很懒,什么都没留下

文章评论