为什么 Go 不学 Rust 用 ? 做错误处理?

大家好,我是煎鱼。

Go 错误处理,一直是个必争之地。为什么不学 Rust 使用 ? 来解决错误处理的问题,也是大家非常好奇的地方。

为此 Go 核心团队成员之一 @Robert Griesemer 给出了官方诠释和解答。以下为其解答的内容。

推荐大家阅读,表明了官方态度!


Go 的语言设计非常注重可读性!

我们希望即使是不熟悉该语言的人也能理解 Go 代码(这并不意味着每个名称都需要不言自明;毕竟我们还有语言规范)。

截止目前为止,我们已经避免了在 Go 中引入各种的神秘缩写或符号,包括不常见的运算符,例如:?因为这些符号的含义是模糊或不明显的

一般来说,语言定义的标识符要么是完全拼写的(例如:package、interface、if、append、recover 等)。要么是简写的(例如:struct、var、func、int、len、imag 等)。当然,简写的版本也需要确保明确和易于理解。

而 Rust 引入 ? 是为了缓解 try 和链式语句的问题。而在 Go 中,这个问题要小得多,因为 Go 中的语句往往更简单,链式语句(相对于嵌套)也不常见。

如果 Go 要使用 ? 将需要在语言设计中引入一个新的后缀运算符。这将需要一个新的标记和新的语法,并需要对大量软件包(扫描器、解析器等)和工具进行修改和开发。改造的成本比较大

这也会使 Go 未来的修改变得更加困难。而如果未来错误处理使用内置函数来解决,则可以消除所有这些问题,同时保持设计的灵活性。

这也是为什么 Go 将不会学 Rust 使用 ? 来做错误处理的具体原因。

推荐阅读

关注和加煎鱼微信,

一手消息和知识,拉你进技术交流群👇

457e786819788e567fe8a228bb186976.jpeg

fd7526ad44e223719f86a9302a5d484b.png

你好,我是煎鱼,出版过 Go 畅销书《Go 语言编程之旅》,再到获得 GOP(Go 领域最有观点专家)荣誉,点击蓝字查看我的出书之路

日常分享高质量文章,输出 Go 面试、工作经验、架构设计,加微信拉读者交流群,和大家交流!

原创不易 点赞支持

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值