Go 语言创始人 Rob Pike :反对在 Go 1.18 标准库中引入泛型支持

Go语言创始人RobPike在Github上建议不要在Go1.18版本的标准库中引入泛型,理由是改动范围大可能引入错误,且缺乏实战经验。他主张先在实际使用中测试和积累经验,待成熟后再更新标准库。Rob提议在golang.org/x或golang.org/exp提供泛型库,让社区试用并逐步完善。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来源:公众号 SegmentFault


近日,Go 语言创始人之一 Rob Pike 在 Github 上发表评论引发关注。据悉,他已在 Go 代码仓库提交了一个 issue (#48918),反对在 Go 1.18 的标准库中引入泛型支持,建议不要改动 Go 1.18 中的标准库。

e0fbe33613ffdd179900f4b9e716ae0d.png

Rob 提出以上建议主要有两个依据

其一,是因为改动范围过大,可能会出现差错。Rob 表示,Go 语言 1.18 版本很可能包括自创建以来对语言的最大变化——参数多态性,俗称泛型。

尽管语言的变化已经以某种形式进行了十多年,但是库的变化是非常新的,且暂时没有设计使用新类型的经验和依据。当然,多年来 Go 语言团队已经对此做了很多工作。

关于核心库将如何适应等议题,目前也已经有很多讨论(例如请参见#45955和#48594,还有其他的,而且肯定会很快出现。)

其二,是缺乏实战经验。Rob 指出,如何在标准库中使用这些泛型是需要深思熟虑计划的。如果现在将它们放入库中,会给发布增加了很大的负担。

可以在生产中进行测试,在一两个周期内进行更改、调整和发展,让整个社区试用,只有通过测试,才会将它们转移到主回购协议中进入主仓库。也就是说,有了一、两个版本的实际使用,且积累了足够的经验之后,再考虑更新标准库也不迟。

另外,由于泛型的兼容性承诺使得任何细节出错的成本相当高,Rob 团队先等待、观察和学习。

1564b0a93e77f831b4237f4bfd5d0dd9.png

因此,Rob 建议暂时不要在 Go 1.18 修改标准库。可以继续为切片、贴图、通道等设计、构建、测试和使用新的库,先在 golang.org/x 或 golang.org/exp 提供相关库的泛型版本。

f2b0bea3d0ef4013422dd4a2f8527148.png

最后,Rob 忠告称:“我意识到每个人都想从新的语言功能中获得乐趣,并期待着解决核心库中的一些问题,这些问题一旦出现就会变得不那么笨拙,但我坚信,现在最好放慢速度。谨慎使用、学习、学习和行动。”

---------End---------

9308927620e7ffc378bb564a3bd0e73c.png

精选资料

回复关键词,获取对应的资料:

关键词资料名称
600《Python知识手册》
md《Markdown速查表》
time《Python时间使用指南》
str《Python字符串速查表》
pip《Python:Pip速查表》
style《Pandas表格样式配置指南》
mat《Matplotlib入门100个案例》
px《Plotly Express可视化指南》

精选内容

2dd87f1aad44ac97b6da27a0d423b386.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值