谷歌发布了新版编程语言 Go 的预览版。 1.18 版增加了使用所谓的“参数化”类型进行“通用”编程的功能。
用他们自己的话说,这是自 Go 版本 1 发布以来编程语言最重要和最大的变化。泛型背后的想法是,它现在允许通过修改类型来表示函数和数据结构的功能。 这排除了通过将接口类型定义为抽象被带到函数的实际数据的方式所允许的“通用性”。
谷歌表示,Go 开发人员应该意识到该功能无疑会导致新的错误。 因此,他们应该谨慎对待这些“泛型”。
Go 1.18 Beta 中的其他功能
除了上述功能外,新预览版还内置支持编写基于模糊测试的测试。 这些测试可以自动找到导致程序崩溃或返回无效答案的输入。 Go 1.18 Beta 还提供了一个新的“Go 工作区模式”。 这允许程序员同时使用多个 Go 模块。 据谷歌称,这对于大型项目特别有用。
此外,1.18 Beta 版通过扩展的 go version -m 命令添加了功能。 此命令现在将详细信息存储为编译器标志。 程序现在可以使用命令 debug.ReadBuildInfo 查询自己的构建详细信息。
此外,自 Go 1.17 起可用的更多基于寄存器的调用约定已添加到预览版中。 在以前的版本中,此功能仅适用于在 x86 和 x64 系统上加速 Go 代码,现在它也适用于基于 ARM64 和 PPC64 的系统。 这应该可以提高 20% 的速度。