今天 Go 团队终于发布 Go 1.18了,您可以通过https://go.dev/dl/获得最新版本。
Go 1.18 是一个包含大量新功能的版本,同时不仅改善了性能,也对语言本身做了有史以来最大的改变。毫不夸张地说,Go 1.18 的部分设计十多年前,在第一次发布 Go 时就开始了构思(例如泛型,最早的时候在2009年Russ Cox 在博客里面讨论过泛型如何设计https://research.swtch.com/generic)。
下面让我们一一来快速预览一下这些最新特性
01
泛型
在 Go 1.18 中,我们引入了新的支持使用参数化类型的泛型代码(https://go.dev/blog/why-generics)。支持泛型一直是 Go 最常要求的功能,
我们很自豪能够提供社区里面大多数用户所需的泛型支持。后续版本将会提供某些更复杂的泛型用例。
我们鼓励您使用我们的泛型教程(https://go.dev/doc/tutorial/generics),
之前我们GoCN翻译小组已经翻译了官方教程
如果你想探索使用泛型优化和简化代码的最佳方法。查看最新版本的发行说明(https://go.dev/doc/go1.18) 有更多关于在 Go 1.18 中使用泛型的详细信息。
02
模糊测试
在 Go 1.18 中,Go 是第一个具有模糊测试的主要语言完全集成到其标准工具链中的主流语言。像泛型一样,模糊测试在设计中已经存在很长时间了,我们很高兴通过此版本与 Go 生态系统分享它。
请查看我们的模糊测试教程(https://go.dev/doc/tutorial/fuzz) 帮助您开始使用此新功能。
GoCN翻译小组已经翻译了官方教程
03
workspace 工作区
Go modules功能现在已经被广泛采用,Go用户在我们的年度调查报告中反馈了非常高的满意度分数。在2021年的用户调查中,用户对modules最常见的挑战是在多个modules中进行跨modules工作。在Go1.18中,我们通过新的Go工作区模式简化这种多modules工作(https://go.dev/doc/tutorial/workspaces)。
04
20%性能提升
苹果M1、ARM64和PowerPC64用户一定非常兴奋!Go1.18包含了高达20%的CPU性能提升。这是因为Go1.17中寄存器ABI调用约定扩展到了这些架构。为了强调这个提升多么巨大,我们使用20%性能提升作为重要的第四节的标题!
05
感谢和总结
关于1.18版本中所有更详细的内容说明,请查阅发布说明(https://go.dev/doc/go1.18)。
Go 1.18对整个Go社区而言是一个重要的里程碑。我们要感谢每一个提交错误,提交更改,编写教程或者以任何形式帮助Go1.18成为现实的Go用户。没有你们,我们做不到这些,感谢你们。
Enjoy Go 1.18!
文章评论