亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

(*testing.common).Errorf 不支持錯誤包裝指令 %w

(*testing.common).Errorf 不支持錯誤包裝指令 %w

Go
智慧大石 2022-10-24 09:23:16
我正在克隆一個私人圍棋項目。在代碼編輯器和運行 golangci-lint 時出現以下錯誤。代碼編輯器截圖錯誤golangci-lint 截圖錯誤示例代碼是這樣的:func TestAService(t *testing.T) {    ...    err := service.AService()    if err != nil {        t.Errorf("Error on executing the test cases %w", err)    }}go 項目在其他筆記本電腦上運行良好,但我使用它的那個有這個錯誤。兩臺筆記本電腦使用的go版本是:go 1.17
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

您發布的屏幕截圖不是錯誤,它們是來自 IDE 的關于代碼中潛在問題的警告。

但是testing.T.Errorf不支持%wfmt.Sprintf和它接受和不接受的一樣),所以警告是正確的。

這些消息不會阻止您的代碼構建和運行,但在出現錯誤的情況下,字符串的格式將被關閉。

如果您運行代碼,并且出現錯誤,您將得到類似的結果(后面的部分%!w將取決于您擁有的確切錯誤值)。

Error on executing the test cases %!w(*errors.errorString=&{some error})

您收到的具體警告可能是 new 1,但我不相信這個錯誤代碼在任何版本的 go. 當然,由于大多數測試錯誤通常是看不到的(因為測試通過了),所以這個缺陷可能一直是不可見的。

修復方法是將%w(wrap error)替換為%v(format object 以默認方式,對于錯誤將使用其字符串形式)。


查看完整回答
反對 回復 2022-10-24
  • 1 回答
  • 0 關注
  • 305 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號