《Go语言之父的警告:避免在Go 1.18标准库中使用泛型》

发表时间: 2021-10-18 10:38

出品|开源中国

作者|局长

Go 语言之父 Rob Pike 近日在 Go 代码仓库提交了一个 issue (#48918),建议不要改动 Go 1.18 中的标准库,不要在 1.18 的标准库中使用泛型。

Rob 指出,在标准库中使用泛型需要深思熟虑和规划。如果现在就将泛型应用到标准库,那么会为发布版本增加很大的负担。因此他建议不要更新 Go 1.18 的标准库。

对此,Rob 给出的理由是,如果在 1.18 版本中就更新标准库,那么团队的工作量会非常大,很容易导致出错。泛型是 Go 诞生以来最大的一次语言变化,但 Go 核心开发团队也没有使用新泛型的经验,无法为标准库的更新提供有力的案例。

另外,他们还承诺过要保证 Go 1 的全系列兼容性,因此试错成本也非常高。Rob 建议团队应该继续等待、观察和学习。

Rob 表示,关于标准库的试验会在 golang/x/exp 仓库中进行,只有通过测试才会进入主仓库。

最后,Rob 说道:“我知道每个人都想体验新语言特性的乐趣,并期待修复核心库中的一些问题,但我坚信现在最好慢慢地稳步前进,谨慎使用、学习、研究和推进。”