美国时间 2022 年 3 月 15 日,Go 团队官宣 Go 1.18 正式发布!
Go 团队表示:Go 1.18 是一个包含大量新功能的版本,包括对语言本身做了有史以来最大的改变(泛型)、工具链的实现、运行时和库的更改,还改善了性能。毫不夸张地说,Go 1.18 的部分设计十多年前,在第一次发布 Go 时就开始了构思。
下面让我们来快速预览一下这些最新特性:
泛型(Generics)
Go 1.18 引入了对使用参数化类型的泛型代码的新支持。支持泛型是 Go 最常被要求添加的功能,后续版本将继续为一些更复杂的泛型用例提供额外支持。
Go 鼓励用户使用泛型教程来了解这一新功能,并探索使用泛型来优化和简化用户的代码的最佳方法。
泛型教程链接:https://go.dev/doc/tutorial/g...
在 Go 1.18 版本发布说明中有更多使用泛型的细节。
模糊测试(Fuzzing)
随着 Go 1.18 版本的发布,Go 成为第一个将模糊测试完全集成到其标准工具链中的主要语言。与泛型一样,模糊测试已经设计了很长时间。
请结合 Fuzzing 教程开始使用此新功能。
模糊测试教程链接:https://go.dev/doc/tutorial/fuzz
工作区(Workspaces)
如今 Go 模块几乎已被普遍采用,在 Go 年度调查中,用户表达了非常高的满意度。在2021 年用户调查中,用户反馈 Go 模块最常见的挑战是跨多个模块工作。
在 Go 1.18 中,通过使用新的 Go 工作区模式解决了这个问题,这使得在多个模块中工作变得简单。
工作区教程链接:https://go.dev/doc/tutorial/w...
20% 的性能提升
苹果 M1、ARM64 和 PowerPC64 用户肯定会高兴!由于 Go 1.17 的寄存器 ABI 调用约定扩展到这些架构,Go 1.18 的 CPU 性能提升幅度高达 20%。
为了强调这个版本的性能提升幅度有多大,Go 甚至把 20% 的性能提升作为第四个最重要的标题!
更多有关 Go 1.18 的详细内容说明,请查看:https://go.dev/doc/go1.18
下载链接:https://go.dev/dl/