Go 1.18 发布 —— 泛型、模糊测试、工作区和 20% 的性能提升

Go 团队
2022年3月15日

今天,Go 团队非常兴奋地发布了 Go 1.18,你可以通过访问下载页面获取。

Go 1.18 是一个大规模的版本,包括新功能、性能改进,以及我们对该语言有史以来最大的改变。可以毫不夸张地说,Go 1.18 的部分设计始于十多年前我们首次发布 Go 时。

泛型

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

Fuzzing

使用 Go 1.18,Go 是第一个将 Fuzzing 完全集成到其标准工具链中的主要语言。和泛型一样,Fuzzing 在设计中已经存在了很长时间,我们很高兴在这次发布中与 Go 生态系统分享它。请查看我们的 Fuzzing 教程帮助您开始使用此新功能

Workspaces

Go 模块几乎被普遍采用,Go 用户在我们的年度调查中报告的满意度得分非常高。在我们的2021年用户调查中,确定模块的用户最常见的挑战是跨多个模块工作。在 Go 1.18 中,我们通过一个新的工具 Go Workspace mode 解决了这个问题,它使得使用多个模块变得更加简单。

20% 的性能提升

Apple M1, ARM64, 和 PowerPC64 用户欢欣鼓舞!Go 1.18 将 Go 1.17的ABI寄存器调用约定扩展到这些体系结构,使得CPU性能提升了20%。为了强调这个版本的发布变化有多大,20%的性能提升就是第四个最重要的标题!

有关于1.18 中所有内容更为详尽的描述,敬请参阅 发行通告.

Go 1.18的发布 对整个 Go 社区来说无疑是一个巨大的里程碑。我们想要感谢每一位Go用户,是他们提交了错误,推动了改变,编写了教程,或者以任何一种方式来帮助 Go1.18 成为了现实。没有你们的付出就没有今天的Go 1.18。谢谢。

尽情享受 Go 1.18 吧!

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://go.dev/blog/go1.18

译文地址:https://learnku.com/go/t/66220

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!