0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Go 1.20將支持wrapping multiple errors

OSC開源社區(qū) ? 來源:OSC開源社區(qū) ? 作者:OSC開源社區(qū) ? 2022-12-05 09:19 ? 次閱讀

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 中提供:


b92b300c-73d6-11ed-8abf-dac502259ad0.png
聲明:本文內(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)載請注明出處。

收藏 人收藏

    評論

    相關(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)的東西,這篇文章就分享下自己踩過的一
    的頭像 發(fā)表于 11-11 09:22 ?191次閱讀

    go語言如何解決并發(fā)問題

    作為一個后端開發(fā),日常工作中接觸最多的兩門語言就是PHP和GO了。無可否認,PHP確實是最好的語言(手動狗頭哈哈),寫起來真的很舒爽,沒有任何心智負擔,字符串和整型壓根就不用區(qū)分,開發(fā)速度真的是比
    的頭像 發(fā)表于 10-23 13:38 ?159次閱讀
    <b class='flag-5'>go</b>語言如何解決并發(fā)問題

    三十分鐘入門基礎(chǔ)Go Java小子版

    前言 Go語言定義 Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發(fā)的一種靜態(tài)、強類型、編譯型語言。Go 語言
    的頭像 發(fā)表于 08-12 14:32 ?765次閱讀
    三十分鐘入門基礎(chǔ)<b class='flag-5'>Go</b> Java小子版

    出現(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。
    的頭像 發(fā)表于 04-28 10:13 ?397次閱讀

    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次下載
    瑞薩Flash示例程序01版V<b class='flag-5'>1.20</b>(SC版)發(fā)布說明

    16位單片機RL78系列Rev.1.20發(fā)布說明

    電子發(fā)燒友網(wǎng)站提供《16位單片機RL78系列Rev.1.20發(fā)布說明.pdf》資料免費下載
    發(fā)表于 02-19 10:15 ?0次下載
    16位單片機RL78系列Rev.<b class='flag-5'>1.20</b>發(fā)布說明

    如何Go程序編譯到ELF 1開發(fā)板

    ElfBoard組建的共創(chuàng)社是嵌入式科技創(chuàng)新與學(xué)習(xí)實踐的前沿陣地,我們有幸見證著每一位共創(chuàng)官積極投身于嵌入式技術(shù)的熱潮中,用實際行動詮釋著探索精神。今天就跟各位小伙伴分享一下共創(chuàng)官是怎樣Go程序
    的頭像 發(fā)表于 01-29 10:42 ?573次閱讀
    如何<b class='flag-5'>將</b><b class='flag-5'>Go</b>程序編譯到ELF 1開發(fā)板