Перейти к содержимому
Оригинал
TonyBai· 白明的赞赏账户·· 4 дня назадОценка ИИ34

Go 语言元老 Robert Griesemer 提交实验补丁,验证 union 关键字向后兼容可行性

Оригинальный заголовок: 继泛型之后,Gopher 们最渴望拥有的语法武器就是 <a class="normal_text_link mp_article_text_link" data-itemshowtype="0" data-unique-id="muqn1m32-78temz" target="_blank" href="https://mp.weixin.qq.com/s?__biz=MzIyNzM0MDk0Mg==&mid=2247504342&idx=1&sn=40389f410c37e72c32560402456279eb&scene=21#wechat_redirect">Sum Types</a>(联合类型 / 和类型)。 今天,在 Issue <a class="wx_topic_link" data-recommend="" data-topic="1" style="color: #576B95 !important;" topic-id="muqn22v8-iabn0z" href="">#76920</a>(关于为 Go 引入真正的 Sum Types / 和类型的提案)中,Go 语言创始人之一、目前依然坚守在 Google 的元老 Robert Griesemer(也是泛型的主要设计者),亲自提交了两个编译器实验补丁( CL 843425 与 843426),重点攻克最大的拦路虎——向后兼容性: 痛点: union 在 Go 1 中不是保留关键字。成千上万的项目曾把 union 当作变量名或字段名使用。一旦粗暴引入新关键字,势必破坏 Go 1 的兼容性神圣誓言。 Robert 的实验结论: 经过验证,扫描器(Scanner)完全可以在引入 union 关键字的同时,兼容存量代码将其作为普通标识符使用!甚至未来的 gofmt 无需感知版本号就能自动格式化新旧代码。 虽然 Robert 极其严谨地加了免责声明:“这不代表我认可该提案,八字还没一撇,我只是想拿出一份确凿的实验数据支持。” 但所有老 Gopher 都心知肚明:在 Go 的历史上,当 Robert 这种元老亲自下场动手写实验 CL 时,往往意味着该特性的可行性探索已经从口水战进入了严肃的工程验证阶段。 若 union 最终成真,Go 将在保持简约的同时,彻底补齐代数数据类型的最后短板。 聊聊:你期待 G

Заголовок и краткое изложение на выбранном языке ожидают перевода.

Краткий обзор ИИ

Go 语言创始人之一 Robert Griesemer 在 Issue #76920 中提交 CL 843425 与 843426 两个编译器实验补丁,验证引入 union 关键字后扫描器仍可兼容存量代码将其作为普通标识符使用,gofmt 无需感知版本号即可格式化新旧代码。他声明这不代表认可该提案,但实验表明 Sum Types 的可行性探索已进入工程验证阶段。

Полный текст

Полный текст на выбранном языке ожидает перевода. Пока показан оригинал.

继泛型之后,Gopher 们最渴望拥有的语法武器就是 Sum Types(联合类型 / 和类型)。\n\n今天,在 Issue #76920(关于为 Go 引入真正的 Sum Types / 和类型的提案)中,Go 语言创始人之一、目前依然坚守在 Google 的元老 Robert Griesemer(也是泛型的主要设计者),亲自提交了两个编译器实验补丁( CL 843425 与 843426),重点攻克最大的拦路虎——向后兼容性:\n\n痛点: union 在 Go 1 中不是保留关键字。成千上万的项目曾把 union 当作变量名或字段名使用。一旦粗暴引入新关键字,势必破坏 Go 1 的兼容性神圣誓言。\n\nRobert 的实验结论: 经过验证,扫描器(Scanner)完全可以在引入 union 关键字的同时,兼容存量代码将其作为普通标识符使用!甚至未来的 gofmt 无需感知版本号就能自动格式化新旧代码。\n\n虽然 Robert 极其严谨地加了免责声明:“这不代表我认可该提案,八字还没一撇,我只是想拿出一份确凿的实验数据支持。”\n\n但所有老 Gopher 都心知肚明:在 Go 的历史上,当 Robert 这种元老亲自下场动手写实验 CL 时,往往意味着该特性的可行性探索已经从口水战进入了严肃的工程验证阶段。\n\n若 union 最终成真,Go 将在保持简约的同时,彻底补齐代数数据类型的最后短板。\n \n聊聊:你期待 Go 拥有原生的 union 联合类型吗?你最想用它来替换哪种设计?\n\nhttps://github.com/golang/go/issues/76920#issuecomment-5945855573

Источник: TonyBai · mp.weixin.qq.com