2021 年 8 月 16 日,Go 团队发布 Go 1.17,您可以通过访问下载页面获得。此版本为编译器带来了额外的改进,即传递函数参数和结果的新方法。这一变化表明,Go 程序的性能提高了约 5%,amd64 平台的二进制文件大小减少了约 2%。未来版本将支持更多平台。
Go1.17 增加了 Windows/ARM64 的支持。在这个版本中引入了修剪过的模块图。在 go.mod 文件中指定 Go 1.17 或更高版本的模块,其模块图仅包含其他 Go 1.17 模块的直接依赖关系,而不包含其传递依赖关系。这有助于避免需要下载或读取 go.mod 文件,可节省日常开发的时间。
Go 1.17 对语言进行了三个小改动。
添加这些增强功能是为了简化编写符合 unsafe.Pointer"安全规则"的代码,但这些规则保持不变。特别是,正确使用 unsafe.Pointer 的现有程序仍然有效,而新程序在使用 unsafe.Add 或 unsafe.Slice 时仍然必须遵循这些规则。
还有很多其他方面改进和错误修复,包括对 crypto/x509 的验证改进,以及对 URL 查询解析的更改 。有关更改的完整列表以及有关上述改进的更多信息,请参阅完整的发行说明。
Go 团队核心成员 Ian Lance Taylor 在今年年初宣布已提交为 Go 添加泛型的提案。Ian 在博客说道:“为 Go 添加泛型的语言变更完全向后兼容 (fully backward compatible),现有的 Go 程序会继续像现在一样正常运行。”
泛型草案设计概要
Go 团队本来预计在 Go 1.17 中添加泛型,但很遗憾告诉大家,又要推迟了。对于推迟的泛型提案,Go Team 也在其官方博客表示,大家很期待泛型,因此他们一直在努力,为可投入使用做各种细节的打磨,2021 年这块会是重点。目标是 2021 年底,在 Go1.18 的 Beta 中让大家体验,因此不出意外泛型会在 Go1.18 实现,大家可拭目以待。
参考链接:
https://blog.golang.org/go1.17
https://blog.csdn.net/weixin_39589644/article/details/111248116
领取专属 10元无门槛券
私享最新 技术干货