:::info 日期:2021 年 12 月 14 日
    作者:Russ Cox, for the Go team
    原文链接:https://go.dev/blog/go1.18beta1 :::

    我们刚刚发布了 1.18 Beta 1,您可以访问下载页面

    官方 Go 1.18 版本尚未发行几个月。这是首次预览的 Go 1.18,让你踢轮胎,把它旋转,让我们知道你遇到了什么问题。Go 1.18 Beta 1 代表了整个 Google 团队在谷歌和世界各地的贡献者的巨大工作,我们很高兴听到你的想法。

    Go 1.18 Beta 1 是第一个使用参数化类型的 Go 的新支持的预览版本。泛型是从 Go 1 发布以来最重要的变化,肯定是我们曾经做过的最大单语言变化。凭借任何大型新功能,新用户常常发现新错误,我们不希望泛型是此规则的例外;务必以适当的谨慎接近它们。此外,某些细微的案例,例如特定类型的递归通用类型,已被推迟到未来的释放。也就是说,我们知道已经很开心的早期采用者,如果你在使用你认为特别适合泛型的情况,我们希望你能试一试。我们已发布关于如何开始泛型的简短教程,并在上周在Gophercon 进行了探讨。您甚至可以在 Go Dev Branch 模式下在 Go Playground 上尝试

    Go 1.18 Beta 1 添加了内置支持,用于编写基于模糊的测试,自动查找导致您的程序崩溃或返回无效答案的输入。

    Go 1.18 Beta 1 添加了一个新的“Go Workspace Mode”,它可以同时使用多个 GO 模块,这是一个重要的项目的重要用例。

    Go 1.18 Beta 1 包含一个扩展的 go version -m 命令,该命令现在记录构建详细信息,如编译器标志。程序可以使用 debug.readbuildInfo 查询自己的构建详细信息,现在可以使用新的 Debug / BuildInfo包从其他二进制文件中读取构建详细信息。此功能本来是需要为 GO 二进制制定软件材料(SBOM)的任何工具的基础。

    今年早些时候,Go 1.17 增加了一个新的基于寄存器的呼叫公约,以加快 X86-64 系统上的 DO 代码。Go 1.18 Beta 1 将该功能扩展到 ARM64 和 PPC64,导致高速增加 20%。

    感谢所有为此测试版释放的人,特别是在谷歌的团队中,在谷歌上一直在造成普遍的现实。这是一条漫长的道路,我们对结果非常满意,我们也希望你也喜欢它。

    有关更多详细信息,请参阅 Go 1.18 的完整发行说明

    一如既往,特别是对于 Beta 发布,如果您注意到任何问题,请提交问题。

    我们希望您喜欢测试测试版,我们希望您所有人都拥有 2021 年的休息时间。节日快乐!