:::info 日期:2021 年 08 月 16 日
    作者:Matt Pearring and Alex Rakoczy
    原文链接:https://go.dev/blog/go1.17 :::

    今天,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 尽可能稳定。 与往常一样,如果您发现任何问题,请提出问题

    我们希望您喜欢新版本!