Go 博客

Go 1.17 发布

Matt Pearring 和 Alex Rakoczy
2021 年 8 月 16 日

今天,Go 团队非常高兴地发布 Go 1.17,您可以访问 下载页面 获取。

此版本对编译器进行了更多改进,即 一种传递函数参数和结果的新方法。此更改已显示出 Go 程序性能提高约 5%,并且 amd64 平台的二进制文件大小减少了约 2%。对更多平台的支持将在未来的版本中提供。

Go 1.17 还增加了对 Windows 上的 64 位 ARM 架构 的支持,让 gophers 可以在更多设备上本地运行 Go。

我们还在此版本中引入了 修剪后的模块图。在它们的 go.mod 文件中指定 go 1.17 或更高版本的模块,其模块图将仅包含其他 Go 1.17 模块的直接依赖项,而不是其完整的传递依赖项。这应该有助于避免需要下载或读取其他无关依赖项的 go.mod 文件,从而节省日常开发时间。

Go 1.17 带来了三个对 语言的微小更改。前两个是 unsafe 包中的新函数,旨在简化程序符合 unsafe.Pointer 规则的操作:unsafe.Add 允许进行 更安全的指针运算,而 unsafe.Slice 允许进行 更安全的指针到切片的转换。第三个更改是对语言类型转换规则的扩展,以允许从 切片到数组指针 的转换,前提是在运行时切片至少与数组一样大。

最后,还有很多其他改进和错误修复,包括对 crypto/x509 的验证改进,以及对 URL 查询解析 的更改。有关更改的完整列表以及上述改进的更多信息,请参阅 完整的发行说明

感谢所有通过编写代码、提交错误、分享反馈以及测试 Beta 版和候选版本为此次发布做出贡献的人。你们的努力帮助确保 Go 1.17 尽可能稳定。与往常一样,如果您发现任何问题,请 提交问题

希望您喜欢这个新版本!

下一篇文章:整理 Go Web 体验
上一篇文章:Stack Overflow 上的 Go 集体
博客索引