Go 1.17 发布
Matt Pearring and Alex Rakoczy
2021 年 8 月 16 日
今天,Go 团队很高兴地发布了 Go 1.17,你可以通过访问下载页面获得该版本。
这个版本给编译器带来了额外的改进,即传递函数参数和结果的新途径。这一改变使 Go 程序的性能提高了约 5%,并使 amd64 平台的二进制大小减少了约 2%。对更多平台的支持将在未来的版本中出现。
Go 1.17 还增加了对 Windows 上的 64 位 ARM 架构的支持,让地鼠在更多设备上原生运行 Go。
我们还在这个版本中引入了精简模块图。在其 go.mod
文件中指定 go 1.17
或更高版本的模块,其模块图只包括其他 Go 1.17 模块的直接依赖关系,而不是其全部的横向依赖关系。这应该有助于避免下载或阅读 go.mod
文件,以获取不相关的依赖关系,从而在日常开发中节省时间。
Go 1.17 带有三个小的语言变化。前两个是 unsafe
包中的新函数,使程序更容易符合 unsafe.Pointer
规则。unsafe.Add
允许更安全的指针运算,而 unsafe.Slice
允许更安全的指针与片断的转换。第三个变化是对语言类型转换规则的扩展,允许从切片到数组指针的转换,只要切片在运行时至少和数组一样大。
最后还有一些其他的改进和错误修复,包括对 crypto/x509 的验证改进,以及对 URL 查询解析的改动。有关上述改进的完整变化列表和更多信息,请参见完整发布说明。
感谢所有通过编写代码、提交错误、分享反馈以及测试测试版和候选版而为这个版本做出贡献的人。你的努力有助于确保 Go 1.17 尽可能的稳定。一如既往,如果你发现任何问题,请提交问题。
我们希望你喜欢这个新版本!
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: