Go 1.18 is released!

Summary

宣布了 Go 1.18 的正式发布,该版本被认为是 Go 语言历史上最大的改动,主要引入了期待已久的泛型支持、集成到标准工具链的模糊测试功能、简化多模块开发的工作区模式,以及在特定架构(如 Apple M1、ARM64)上带来的高达 20% 的 CPU 性能提升。

今天,Go 团队非常激动地发布了 Go 1.18,您可以通过访问下载页面获取它。

Go 1.18 是一个重大版本,包含了新功能、性能改进,以及我们对这门语言有史以来最大的改动。毫不夸张地说,Go 1.18 部分内容的设计早在十多年前我们首次发布 Go 时就开始了。

泛型 Generics

在 Go 1.18 中,我们引入了对使用参数化类型的泛型代码的新支持。支持泛型一直是 Go 最常被要求的功能,我们很自豪能提供当今大多数用户所需的泛型支持。后续版本将为一些更复杂的泛型用例提供额外支持。我们鼓励您通过我们的泛型教程了解这一新功能,并探索如今使用泛型来优化和简化代码的最佳方法。发布说明中有关于在 Go 1.18 中使用泛型的更多详细信息。

模糊测试

随着 Go 1.18 的发布,Go 成为首个将模糊测试完全集成到其标准工具链中的主流语言。与泛型一样,模糊测试的设计也经历了很长一段时间,我们很高兴能在此次发布中与 Go 生态系统分享这一功能。请查看我们的模糊测试教程,以帮助您开始使用这一新功能。

工作区

Go 模块已被几乎普遍采用,并且在我们的年度调查中,Go 用户报告了非常高的满意度。在我们 2021 年的用户调查中,用户发现的与模块相关的最常见挑战是跨多个模块工作。在 Go 1.18 中,我们通过新的Go 工作区模式解决了这个问题,这使得处理多个模块变得简单。

20% 的性能提升

Apple M1、ARM64 和 PowerPC64 用户们,欢呼吧!Go 1.18 将 Go 1.17 的寄存器 ABI 调用约定扩展到了这些架构,从而使 CPU 性能提升高达 20%。值得强调的是,在这个版本的重要亮点中,20%的性能提升仅排在第四位!

有关 1.18 版本中所有内容的更详细说明,请查阅发布说明

Go 1.18 是整个 Go 社区的一个重大里程碑。我们要感谢每一位提交错误报告、发送修改建议、撰写教程或以任何方式帮助 Go 1.18 成为现实的 Go 用户。没有你们,我们无法做到这一点。谢谢你们。

享受 Go 1.18 吧!