Go 近日接受了名為「add support for wrapping multiple errors」的提案。 該項提案對錯誤處理進行了優(yōu)化,與 Go 1.13 為錯誤處理提供的新功能有關(guān):Error Wrapping。引入 Error Wrapping 后,Go 同時為errors包添加了 3 個工具函數(shù),分別是Unwrap、Is和As。 對于「add support for wrapping multiple errors」提案,顧名思義就是一個錯誤可以包裹多個錯誤。
Unwrap() []error提出該提案的開發(fā)者表示,重用Unwrap避免了與現(xiàn)有 Unwrap 方法產(chǎn)生歧義,從Unwrap中返回一個長度為 0 的列表意味著錯誤沒有包裹任何內(nèi)容。調(diào)用方不得修改由Unwrap返回的列表,Unwrap返回的列表不得包含任何nil錯誤。 他還對errors.Is和errors.As函數(shù)進行了更新,實現(xiàn)對 multiple errors 進行Unwrap操作。 errors.Join函數(shù)提供了 multierr 的簡單實現(xiàn):
// Join returns an error that wraps the given errors. // Any nil error values are discarded. // The error formats as the text of the given errors, separated by newlines. // Join returns nil if errs contains no non-nil values. func Join(errs ...error) error
目前該提案已被接受,作者表示將在 Go 1.20 中提供:
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4345瀏覽量
62864
原文標題:Go 1.20將支持wrapping multiple errors
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
在學(xué)習(xí)go語言的過程踩過的坑
作為一個5年的phper,這兩年公司和個人都在順應(yīng)技術(shù)趨勢,新項目慢慢從php轉(zhuǎn)向了go語言,從2021年到現(xiàn)在,筆者手上也先后開發(fā)了兩個go項目。在學(xué)習(xí)go語言的過程中也學(xué)習(xí)并總結(jié)了一些相關(guān)的東西,這篇文章就分享下自己踩過的一
go語言如何解決并發(fā)問題
作為一個后端開發(fā),日常工作中接觸最多的兩門語言就是PHP和GO了。無可否認,PHP確實是最好的語言(手動狗頭哈哈),寫起來真的很舒爽,沒有任何心智負擔,字符串和整型壓根就不用區(qū)分,開發(fā)速度真的是比
三十分鐘入門基礎(chǔ)Go Java小子版
前言 Go語言定義 Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發(fā)的一種靜態(tài)、強類型、編譯型語言。Go 語言
出現(xiàn)Multiple decode errors occured:故障如何解決?
出現(xiàn)Multiple decode errors occured:故障,沒有相應(yīng)的文件說明消除這個故障
發(fā)表于 07-19 07:02
XMC4200 Platform2Go如何通過產(chǎn)生PWM信號來控制測量到的電流值?
我使用的是 XMC4200 Platform2Go 評估板。
我想通過產(chǎn)生 PWM 信號來控制測量到的電流值。
電流值將通過 AD 轉(zhuǎn)換器作為輸入信號,然后輸出 PWM 信號。
發(fā)表于 05-29 07:38
求助,關(guān)于PSoC4000S POWER_DRILL2GO下降壓擺率的疑問求解
( POWER_DRILL2GO下降緩慢),所以我正在考慮在XRES上添加一個復(fù)位IC來解決這個問題。
例如,如果復(fù)位 IC 將 XRES 置為 1.7V 或更低,即使POWER_DRILL2GO -down 的壓擺率不符合數(shù)據(jù)
發(fā)表于 05-21 08:14
請問STVP+COSMIC環(huán)境下的go to definition怎么用?
STVP+COSMIC環(huán)境下的go to definition怎么用?
我現(xiàn)在go to definition在一個宏定義的時候有效果,但是函數(shù)什么的沒用,是怎么回事呢,是不是工程里面沒有設(shè)置好,求大家?guī)蛶兔Γ?/div>
發(fā)表于 05-11 06:11
關(guān)于go中接口類型的表示方法
go是一個靜態(tài)性語言,每個變量都有靜態(tài)的類型,因此每個變量在編譯階段中有明確的變量類型,比如像:int、float32、MyType。
atollic truestudio調(diào)試時Live Expressions顯示功能不可用怎么解決?
atollic truestudio調(diào)試時Live Expressions顯示功能不可用,表達式欄Multiple errors reported.Failed to execute MI command:-var-create - ,請問怎么解決?
發(fā)表于 04-02 07:53
在CYUSB3304-68LTXC上電時將RESETN輸入切換為L/H,可以聯(lián)動控制POWER_DRILL2GO端子嗎?
我有一個關(guān)于 HX3 的問題。
如果在 CYUSB3304-68LTXC 上電時將 RESETN 輸入切換為 L/H,是否可以聯(lián)動控制POWER_DRILL2GO端子?
例如,當RESETN輸入為L時, POWER_DRILL2GO
發(fā)表于 03-06 07:45
PMG1 PoR復(fù)位時POWER_DRILL2GO什么時候進入?
我有兩個關(guān)于 PMG1 PoR 的問題。
1.復(fù)位時POWER_DRILL2GO什么時候進入?
也許您想在電壓低于預(yù)設(shè)值時強制 EZ-PD? PMG1-S1 MCU 設(shè)備復(fù)位
發(fā)表于 03-06 06:03
Arduino IDE中是否有與Xmc2Go兼容的LoRaWAN庫?
我想問一下 Arduino IDE 中是否有與 Xmc2Go 兼容的 LoRaWAN 庫?
我正在嘗試使用連接到 Xmc2Go 的 RFM95W Lora 模塊通過 LoRaWAN 將數(shù)據(jù)傳輸
發(fā)表于 02-27 06:05
瑞薩Flash示例程序01版V1.20(SC版)發(fā)布說明
電子發(fā)燒友網(wǎng)站提供《瑞薩Flash示例程序01版V1.20(SC版)發(fā)布說明.pdf》資料免費下載
發(fā)表于 02-19 10:40
?0次下載
16位單片機RL78系列Rev.1.20發(fā)布說明
電子發(fā)燒友網(wǎng)站提供《16位單片機RL78系列Rev.1.20發(fā)布說明.pdf》資料免費下載
發(fā)表于 02-19 10:15
?0次下載
如何將Go程序編譯到ELF 1開發(fā)板
ElfBoard組建的共創(chuàng)社是嵌入式科技創(chuàng)新與學(xué)習(xí)實踐的前沿陣地,我們有幸見證著每一位共創(chuàng)官積極投身于嵌入式技術(shù)的熱潮中,用實際行動詮釋著探索精神。今天就跟各位小伙伴分享一下共創(chuàng)官是怎樣將Go程序
評論