成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Go 為什么不像 Rust 用 ?!做錯誤處理?

開發 項目管理
Go 錯誤處理 if err != nil 的解決,已經成為了一塊燙手的山芋,怎么改都不討好了,相關負責人積極討論,實施持續擺爛中,沒有新的建設。

大家好,我是煎魚。

之前每次寫 Go 錯誤處理的相關提案時,大家都會在評論區探討到一個事。

圖片

Go 這活不得勁,常被戲稱,一個大型 Go 工程項目里 60% 的代碼都是 if err != nil。

咱們錯誤處理怎么不借鑒一下 Rust,高低也整個問號的語法特性,就可以簡化這三行了,不香嗎?

借鑒 Rust 用 ?!| 符號

核心的點是在現有的 Go 例子中,我們一般要寫 if err != nil,多了之后又多又雜看起來還有些麻煩。

如下 Go 代碼:

count, err = fd.Write(bytes)
if err != nil {
return nil, err
}

如果我們也借鑒 Rust 使用 ! 和 ?的簡化版,我們可以演進為如下代碼:

count := fd.Write!(bytes)
count := fd.Write(bytes)!
count := fd.Write(bytes)?

也有大佬提到可以演進一下使用 || 變成:

fd.Write(bytes) || Expr

不管如何,就是不需要寫三行的 if err != nil 去處理這個硬邏輯,只要加個符號(類似語法糖)就行,由編譯器和運行時自己去處理就完了。

這類提案都會被拒絕

為什么最后 Go 沒有落地呢?

普遍社區中參與討論的大佬認為,新的語法糖相較 if err != nil,會增加認知和理解代碼的開銷,并降低代碼可讀性。

圖片

這些神奇的的功能和符號,他們是隱秘的,更容易讓人錯過,會導致程序控制流邏輯發生改變,增加程序員的心智負擔。

Go 初學者也需要額外掌握這幾個符號的理解和應用,有新的學習成本。

這類提案會被直接拒絕,請大家不要再幻想了。

希望開發者自己定模板

如果只是為了解決那 3 行代碼,部分大佬表示 Go 開發者應該自己定義錯誤模板。而不是借助引入更多的新語法來解決,這也不符合 Go 語言對 “less is more” 的理念定義。

圖片

從現在對 Go 錯誤處理的多個提案討論和社區交流來看,Go 在這塊已經陷入僵局,很像工作中的什么呢?

像我們常提的既要也要還要,重要的是這事 ROI 也不夠高,導致Go 核心團隊的動力不足,也不想互相得罪了。

只能甩出一句經典:”?讓 Rust 特性留給 Rust“。

總結

Go 錯誤處理 if err != nil 的解決,已經成為了一塊燙手的山芋,怎么改都不討好了,相關負責人積極討論,實施持續擺爛中,沒有新的建設。

根據以往在依賴管理的,我猜測最終大概率會由 Go 團隊大當家 Russ Cox 操刀,否則很難有人能力挽狂瀾。不過,目前來看他對此并不感興趣。對于開啟 Go 工具鏈遙測的提案,也剛吃了閉門羹。

錯誤處理的碰撞,真是 Go 的一生之敵。

責任編輯:武曉燕 來源: 腦子進煎魚了
相關推薦

2024-06-05 08:47:20

Go語言方式

2025-03-31 08:57:25

Go程序性能

2022-12-12 08:53:53

Go版本方式

2014-11-17 10:05:12

Go語言

2021-04-29 09:02:44

語言Go 處理

2020-12-17 06:25:05

Gopanic 模式

2025-02-24 09:30:15

2024-02-28 08:54:57

switchGo錯誤

2022-06-26 23:03:14

Go標準庫語言

2022-05-26 08:53:47

Go函數代碼

2024-03-14 09:35:54

Go 錯誤select代碼

2025-02-10 09:49:00

2025-06-06 06:45:54

2025-03-31 00:29:44

2021-09-13 07:53:31

Go錯誤處理

2022-09-05 08:55:15

Go2提案語法

2025-06-30 09:49:11

2024-03-27 08:18:02

Spring映射HTML

2025-06-05 02:25:00

2021-09-27 15:33:48

Go 開發技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品一区二区三区在线 | 一区二区三区四区不卡 | 国产精品成人69xxx免费视频 | 日朝毛片 | 黄色香蕉视频在线观看 | 中文字幕免费 | av黄色在线播放 | 日本午夜精品 | 亚洲一一在线 | 亚洲欧美一区二区三区在线 | 久久久精彩视频 | 日韩精品在线观看免费 | 国产在线视频一区二区 | 精品一区二区三区在线视频 | 成人av一区二区亚洲精 | 国产精品久久久久久久久动漫 | 韩国av一区二区 | 国产精品一区二区av | 99久久日韩精品免费热麻豆美女 | 91精品在线播放 | 亚洲精品一区二区三区蜜桃久 | 亚州成人 | 日韩一区不卡 | 色婷婷精品国产一区二区三区 | 不卡一区二区三区四区 | 日韩精品无码一区二区三区 | 国产成人精品综合 | 日韩电影中文字幕 | 久久精品无码一区二区三区 | 亚洲一区视频在线 | 天天色天天色 | 伊人久久精品一区二区三区 | 一级高清免费毛片 | 欧美视频一区二区三区 | 国产精品久久 | 在线观看免费观看在线91 | 中文二区 | 青青草av网站 | 狠狠躁躁夜夜躁波多野结依 | 一级毛片高清 | 国产视频h|