关于github:Go-创始人-Rob-Pike-反对在-Go-118-标准库中引入泛型支持建议不要改动-Go-118-中的标准库

62次阅读

共计 726 个字符,预计需要花费 2 分钟才能阅读完成。

近日,Go 语言创始人之一 Rob Pike 在 Github 上发表评论,他已在 Go 代码仓库提交了一个 issue (#48918),拥护在 Go 1.18 的规范库中引入泛型反对,倡议不要改变 Go 1.18 中的规范库。

Rob 提出以上倡议次要有 两个根据

其一,是因为改变范畴过大,可能会呈现过错。Rob 示意,Go 语言 1.18 版本很可能包含自创立以来对语言的最大变动——参数多态性,俗称泛型。

只管语言的变动曾经以某种模式进行了十多年,然而库的变动是十分新的,且临时没有设计应用新类型的教训和根据。当然,多年来 Go 语言团队曾经对此做了很多工作。

对于外围库将如何适应等议题,目前也曾经有很多探讨(例如请参见 #45955 和#48594,还有其余的,而且必定会很快呈现。)

其二,是不足实战经验。Rob 指出,如何在规范库中应用这些泛型是须要三思而行打算的。如果当初将它们放入库中,会给公布减少了很大的累赘。

能够在生产中进行测试,在一两个周期内进行更改、调整和倒退,让整个社区试用,只有通过测试,才会将它们转移到主回购协定中进入主仓库。也就是说,有了一、两个版本的理论应用,且积攒了足够的教训之后,再思考更新规范库也不迟。

另外,因为泛型的兼容性承诺使得任何细节出错的老本相当高,Rob 团队先期待、察看和学习。

因而,Rob 倡议临时不要在 Go 1.18 批改规范库。能够持续为切片、贴图、通道等设计、构建、测试和应用新的库,先在 golang.org/x 或 golang.org/exp 提供相干库的泛型版本。

最初,Rob 忠告称:“我意识到每个人都想从新的语言性能中取得乐趣,并期待着解决外围库中的一些问题,这些问题一旦呈现就会变得不那么蠢笨,但我深信,当初最好加快速度。审慎应用、学习、学习和口头。”

正文完
 0