前言
Go 1.18
真的是千呼万唤始出来,这个版本不知道 gopher
期待了多久,终于是正式发布了。
Go 1.18
是一个大型版本,其中包括新功能、性能改进以及对该语言的最大更改。毫不夸张地说,Go 1.18
的部分设计始于十多年前第一次发布 Go 时。
泛型
在 Go 1.18
中,引入了对使用参数化类型的泛型代码的支持。支持泛型一直是 Go
最常被要求的功能,Go 团队很自豪能够提供当今大多数用户所需的泛型支持。后续版本将为一些更复杂的通用用例提供额外支持。Go 团队鼓励我们使用泛型教程了解这一新功能,并探索使用泛型优化和简化代码的最佳方法。发行说明有更多关于在 Go 1.18
中使用泛型的细节。
模糊测试
在 Go 1.18
中,Go
是第一个将模糊测试完全集成到其标准工具链中的主要语言。像泛型一样,模糊测试已经设计了很长时间,Go
团队很高兴在这个版本中与 Go
生态系统分享它。请查看 fuzzing 教程 ,以帮助你开始使用此新功能。
工作区
Go
模块几乎已被普遍采用,Go
用户在年度调查中取得了非常高的满意度得分。在 2021 年用户调查中,用户对模块最常见的挑战是跨多个模块工作。在 Go 1.18
中,Go
团队使用新的 Go 工作区模式解决了这个问题,这使得使用多个模块变得简单。
20% 的性能提升
Apple M1
、ARM64
和 PowerPC64
用户欢欣鼓舞!由于 Go 1.17
的寄存器 ABI
调用约定扩展到这些架构,Go 1.18
包括高达 20% 的 CPU 性能改进。只是为了强调这个版本有多大,20% 的性能提升是第四个最重要的标题!
小结
Go 1.18
对整个 Go
社区来说是一个巨大的里程碑。有关 1.18
中所有内容的更详细说明,请参阅发行说明。