美国时间2022年3月15日,Go核心团队官宣了Go 1.18版本正式版的发布!这是一个万众期待的版本,因为在这个版本中,Go核心团队做了Go语言开源以来的最大一次语法特性变更 - 增加了对泛型(generics)的支持下面是对Go官博文章的全文翻译,供大家参考!
今天,Go团队很高兴地发布了Go 1.18,你可以通过访问下载页面获得该版本。
Go 1.18是一个真正的大版本,包括新功能特性、性能改进和我们对语言的最大改变。可以说Go 1.18的部分设计始于十年前我们首次发布Go语言的那个时候也并不夸张。
泛型(Generics)
在Go 1.18版本中,我们引入了对使用参数化类型的泛型代码的新支持。支持泛型是Go最常被要求添加的功能特性,我们很自豪能够提供大多数用户目前需要的泛型支持。随后的版本将继续为一些更复杂的泛型用例提供额外支持。我们鼓励你使用我们的泛型教程来了解这个新功能,并探索使用泛型来优化和简化你的代码的最佳方法。Go 1.18版本发布说明中有关于在Go 1.18中使用泛型的更多细节。
模糊测试(Fuzzing)
伴随着Go 1.18版本的发布,Go成为第一个将模糊测试(Fuzzing)完全集成到其标准工具链中的主要语言。与泛型一样,模糊测试的设计已经持续存在了很长时间,我们很高兴能在这个版本中与Go生态系统分享它。请查看我们的模糊测试教程,以帮助你开始使用这个新功能。
工作区(Workspaces)
今天,Go module几乎已被普遍接纳和采用,Go用户在我们的年度调查中报告了非常高的满意度分数。在我们2021年的用户调查中,用户反馈go module的最常见的挑战是跨多个module工作。在Go 1.18中,我们通过新的Go工作区模式(Go workspace mode)解决了这一问题,这使得在多个module中工作变得简单。
20%的性能改进
苹果M1、ARM64和PowerPC64用户肯定会欢欣鼓舞! 由于Go 1.17的寄存器ABI调用约定扩展到这些架构,Go 1.18的CPU性能提升幅度高达20%。为了强调这个版本的性能提升幅度,我们将20%的性能改进作为了第四个最重要的标题
关于1.18中的所有内容的更详细描述,请查阅Go 1.18发布说明。
Go 1.18是整个Go社区的一个巨大的里程碑。我们要感谢每一位提交错误、发送修改、编写教程或以任何方式帮助Go 1.18成为现实的Go用户。没有你们,我们无法做到这一点。谢谢你们。
享受Go 1.18吧!
讲师主页:tonybai_cn
讲师博客: Tony Bai
专栏:《改善Go语言编程质量的50个有效实践》
实战课:《Kubernetes实战:高可用集群搭建,配置,运维与应用》
免费课:《Kubernetes基础:开启云原生之门》