Go官方已经开始着手Go 2的开发程序,并启动设计草稿发想,率先丢出了三个讨论提案,分别是错误处理(Error Handling)、错误值语意(Error Values)以及泛型(Generics),官方强调,这些提案还只是草稿设计,并非正式官方提案,欢迎Go使用者参与讨论改进。
这些草案设计并非Go提案流程意义上的正式提案,而是作为抛砖引玉,给社群一个讨论的起点,最终目标是产生够好的设计,以转化成实际的正式提案。官方提到,每个草案设计应该都要附有问题概述,来帮助社群理解设计背景,并且提供足够的设计细节,帮助建构和指引有关的讨论。官方列出的泛型、错误值语意以及错误处理三个设计草案作为示范,希望所有Go用户都能帮忙改进,并转成最终的提案。
Go团队提到,Go 2的整体目标是要解决Go无法扩展使用在大型程式码基底,与大型开发人员工作的问题,而他们在Go首次开源前,就一直讨论泛型的可能。在参考C++和Java的经验后,他们发现这主题需要一段时间理解,才能设计出良好的解决方案,在社群中有人错误认为,Go团队的立场永远不会有泛型,官方提到,相反的,因为他们理解虽然泛型会为Go带来更多灵活性,但同时也会让Go变得复杂许多。
现在Go团队提出设计草案,建议扩展Go语言,为类别和函数增加可选的类别参数。目标是要让开发者在撰写Go函式库的时候,这些函式库抽象不需要类别细节,特别是除了预期中的容器类别之外,Go团队也希望可以编写有用的函式库,来操作任意的map和channel值,最理想的状态是可撰写执行在 []byte和string上的多型函数。
同时设计草稿也提到,其他类别的参数化不在目标中,像是透过常量进行的参数化,另外,以位元包装定义通用向量
致力于让Go迈向大型程式码应用,除了程式必须轻量、不过度重复并且强健外,在出现错误时还要能优雅地处理错误。Go团队希望Go的错误检查可以更加轻量化,减少专用于错误检查的Go程式文字,此外,也朝更方便撰写错误处理程式码的方向前进,进而提升开发者执行这项工作的意愿。而且错误检查和错误处理的工作都必须外显,也就是说在程式文字必须可见,Go团队认为,他们不想重蹈覆辙异常处理的陷阱。在进行错误处理改进工作,必须让现有的所有程式都适用。
Go团队在设计草案中,为此引入两种新的语法形式,首先使用检查表示式检查f(x, y, z)和错误,并标记出显性错误,其次加入定义错误处理程式的处理语句,当错误检查失败时,会将控制权转移到内层处理程式,该处理程式会将控制权再转移到下一个处理程式,以此类推直到处理程式执行return语句。
错误处理可以检查并且回应错误之外,良好的报告错误也是非常重要的工作。由于错误值是实作错误界面的任何值,Go程式会以4种方式测试特定错误。无论哪种方式,当原始错误是已知的标记或已知的错误实作类别,则无论是透过fmt.Errorf,抑或是WriteError这类新类别,都会破坏相等性检查并键入断言以查询原始错误。而这将阻止包装,使得有用的错误减少。
在复杂的程式中,最有用的错误叙述,必须包括导致错误的所有不同操作的讯息。而错误值语意设计草稿解决了两个问题,错误检阅和错误格式化,分别会由不同的草案解决,同样会在维持与现有程式码互通的情况下,允许套件继续定义自己的错误类别,以指向错误实作能够满足的定义可选界面方向。
Go团队希望所有使用者可以帮忙改进草案,使其可以转为正式的Go提案,官方建立了一个维基页面,以收集和组织每个主题的回馈。
相关文章
- YouTube更新违反规定政策,提升惩处透明度和一致性
2023-12-31 14:00:52
- 传苹果将把中国iCloud正式交给本地化经营 苹果手机icloud换区存储操作
2023-12-27 18:34:43
- 刘德华代言什么手机?刘德华成华为Mate 60 RS非凡大师华为5G新手机代言人
2023-09-26 21:55:08
- WebOS新系统:Palm Pre手机最新款高价登港
2023-06-23 15:39:14
- 帮助企业组织对抗勒索软件,资安通报机构设立防护专区,可协助事前、事中与事后因应
2023-06-22 09:36:10
- 蔚来全系产品降价3万 取消免费换电 换一次电池180元
2023-06-12 17:27:49
- 电商平台三巨头开打最大规模折扣 价格战再次打响
2023-03-05 18:58:40
- 爱立信节省成本裁员四千人 爱立信全球员工总数五分之一
2023-02-24 22:27:29
- 蜜芽关停近况,八位数重金买三字顶级新域名mia.com也关闭
2023-02-23 16:18:14
- 联想CEO杨元庆:联想集团需要裁员32%削减部分业务支出
2023-02-18 12:45:25
- 蓝色光标2022营收亏损18亿 客户预算减少明显
2023-02-18 12:40:08
- 三星工厂或将80%生产转至越南 因本地劳动力成本上升
2023-02-17 23:09:16
- 香港八达通卡如何激活?没用失效过期余额怎么办
2023-02-17 18:34:51
- 中兴通讯被曝将裁员20% 称只裁国外的
2023-02-17 18:33:26
- 苹果新iPhone15Pro手机终于改用USB-C(火牛)数据线??Lightning充电接口退出
2023-02-17 16:57:22
- 突发!蓝色光标曾为中国民企500强龙头 如今业绩亏损断崖下跌
2023-02-16 14:31:19
- 三星发布自家carplay车载中控系统 Car Mode for Galaxy 可以连接carplay吗?
2023-02-14 00:53:17
- Opera浏览器宣布集成ChatGPT 一键生成网页内容摘要
2023-02-14 00:32:08
- 谷歌google计划重返进入中国市场?但结果可能令你失望
2023-02-13 16:57:15
- Zoom紧急裁员1300人 佔员工总数15%
2023-02-08 14:59:11
最新资讯
- YouTube更新违反规定政策,提升惩处透明度和一致性2023-12-31 14:00:52
- 美国法院裁定阿里须为Squishmallows玩具侵权案答辩2023-12-28 19:59:34
- 小米汽车传员工3700人 雷军称小米汽车不可能卖9万92023-12-28 19:41:57
- 吉利飙逾6% 电动车品牌极氪新车款极氪007昨上市 预售价格22.99万元2023-12-28 19:30:28
- 日本丰田汽车厂11月全球产量创新高2023-12-28 19:26:02
手机
- 中国11月手机出货量增34% 5G手机出货量2709.2万部2023-12-28 19:27:57
- 荣耀发布新一代旗舰荣耀Magic5系列,新款上市价格分期0首付3999元起2023-03-06 16:12:32
- 美国商务部指违禁,长江存储被美国拜登制裁名单面临停工裁员2023-02-17 18:41:53
- 苹果Apple iOS车载系统CarPlay支持哪些更多汽车品牌2023-02-02 17:33:27
- 香港去哪买三星手机回来吗? 买香港便宜售价手机市场地点和网站2023-02-02 11:03:11
数码
- 华为5G芯片正式亮相:预示华为将发首款5G手机2023-08-31 13:22:33
- 腾讯传计划放弃虚拟现实VR硬件计划2023-02-17 23:32:30
- 三星手机份额大跌!三星手机中国市场份额变化国内仅剩3%2023-02-01 17:06:15
- 三星手机份额大跌在中国没市场了!国内市场占有率仅剩1%国外比苹果销量高2023-02-01 16:59:53
- vivo发布2022 vivoNEX手机极简易浏览器下载:简洁流畅无广告!2022-12-02 17:29:30
科技
- 中兴受美国制裁事件 被罚了20亿美元过程事件始末 中兴被制裁后公司现状2023-11-02 22:12:46
- B站怎么炸崩了哔哩哔哩服务器今日怎么又炸挂了?技术团队公开早先原因2023-03-06 19:05:55
- 苹果iPhoneXS/XR手机电池容量续航最强?答案揭晓2023-02-19 15:09:54
- 华为荣耀两款机型起内讧:荣耀Play官方价格同价同配该如何选?2023-02-17 23:21:27
- google谷歌原生系统Pixel3 XL/4/5/6 pro手机价格:刘海屏设计顶配版曾卖6900元2023-02-17 18:58:09