昨天,Go 团队终于发布了 Go 1.18,你可以通过访问 下载链接1 获取,虽然晚了一个月。

据 Go 团队介绍,Go 1.18 是一个大型版本,其中包括新功能、性能改进以及对 Go 语言本身做了非常大的更改。毫不夸张地说,Go 1.18 的部分设计始于十多年前 Go 团队第一次发布 Go 时。

泛型

在 Go 1.18 中,引入了对 参数化类型的泛型代码2 的新支持。Go 团队说:支持泛型一直是 Go 语言呼声最高的功能(其实我不这么觉得),并且做到了。后续版本将为一些更复杂的通用用例提供额外支持。要了解这一功能,可以通过 泛型教程3 深入了解,并探索使用泛型优化和简化您的代码的最佳方法。发行说明4 有更多关于在 Go 1.18 中使用泛型的细节。

模糊测试

在 Go 1.18 中,Go 语言支持了模糊测试,他们也号称是第一个将模糊测试完全集成到其标准工具链中的主要语言。像泛型一样,模糊测试已经设计了很长时间,Go 团队很高兴在这个版本中与 Go 生态系统分享它。请查看 fuzzing 教程5 ,以帮助你开始使用此新功能。

工作区

Go 模块几乎已被普遍采用,Go 用户在年度调查中报告了非常高的满意度得分。在 2021 年用户调查中,用户反馈说挑战最大的是跨多个模块工作。在 Go 1.18 中,Go 团队 使用新的 Go 工作区模式6 解决了这个问题,这使得使用多个模块协作变得更简单。

20% 的性能提升

Apple M1、ARM64 和 PowerPC64 用户应该感到高兴的是:由于 Go 1.17 的寄存器 ABI 调用约定扩展到这些架构,Go 1.18 的 CPU 性能提升了 20% 。为了强调这个版本有多NB,所以 Go 团队 把这个优化特别拿出来吹吹!!!

有关 1.18 中所有内容的更详细说明,请参阅 发行说明7

Go 1.18 对整个 Go 社区来说是一个巨大的里程碑。Go 团队要感谢每个提交错误、发送更改、编写教程或以任何方式帮助使 Go 1.18 成为现实的 Go 用户。总之 Go 团队对贡献者非常感谢。

享受 Go 1.18 吧!(我想补充的是,不能把泛型教程这篇文档更新下吗,用的还是 go1.18beta1 )

本文为原创文章,转载注明出处,欢迎扫码关注公众号flysnow_org或者网站 https://www.flysnow.org/ ,第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「在看」,感谢支持。

扫码关注