Go 博客
Go 1.18 Beta 1 发布,包含泛型
我们刚刚发布了 Go 1.18 Beta 1,您可以访问 下载页面 获取。
Go 1.18 正式版还需要几个月才会发布。这是 Go 1.18 的第一个预览版,让您能够试用它,体验它的功能,并让我们知道您遇到的问题。Go 1.18 Beta 1 代表了 Google 的整个 Go 团队以及世界各地的 Go 贡献者所做的巨大工作,我们很高兴听到您的想法。
Go 1.18 Beta 1 是第一个包含 Go 对 使用参数化类型的泛型代码 的新支持的预览版。泛型是自 Go 1 发布以来 Go 最重要的变化,并且绝对是我们进行过的最大的单一语言变更。对于任何大型的新功能,新用户发现新错误都是很常见的,我们预计泛型也不会例外;请务必谨慎使用它们。此外,某些细微的案例,例如特定类型的递归泛型类型,已被推迟到未来的版本中。也就是说,我们知道一些早期采用者已经非常满意,如果您有一些您认为特别适合泛型的用例,我们希望您能尝试一下。我们已经发布了一个 关于如何开始使用泛型的简短教程,并在 上周的 GopherCon 上做了一个演讲。您甚至可以在 Go playground 的 Go 开发分支模式下 进行尝试。
Go 1.18 Beta 1 添加了对编写 基于模糊测试的测试 的内置支持,以自动查找导致程序崩溃或返回无效答案的输入。
Go 1.18 Beta 1 添加了一个新的“Go 工作区模式”,它允许您同时处理多个 Go 模块,这对大型项目来说是一个重要的用例。
Go 1.18 Beta 1 包含一个扩展的 go version -m
命令,它现在记录了构建细节,例如编译器标志。程序可以使用 debug.ReadBuildInfo 查询其自身的构建细节,并且现在可以使用新的 debug/buildinfo 包从其他二进制文件中读取构建细节。此功能旨在成为任何需要为 Go 二进制文件生成软件物料清单 (SBOM) 的工具的基础。
今年早些时候,Go 1.17 添加了一个新的基于寄存器的调用约定,以加快 x86-64 系统上 Go 代码的速度。Go 1.18 Beta 1 将此功能扩展到 ARM64 和 PPC64,从而使速度提高了 20%。
感谢所有为这个 Beta 版本做出贡献的人,特别是 Google 团队,他们多年来一直不懈地努力使泛型成为现实。这是一段漫长的道路,我们对结果非常满意,也希望您也喜欢它。
请参阅完整的 Go 1.18 版本说明草案,以了解更多详细信息。
与往常一样,尤其是在 Beta 版本中,如果您发现任何问题,请 提交问题。
我们希望您喜欢测试 Beta 版本,并希望大家在 2021 年剩下的时间里都能好好休息。节日快乐!
下一篇文章:1.18 的两个新教程
上一篇文章:Go 十二年
博客索引