我試圖了解是否有更好的方法來簡化 golang 中重復出現的 switch 案例。我有一個可以回傳多個錯誤的方法,但我對 3 個特定錯誤感興趣,我需要回傳一個特定的帶注釋的錯誤而不是一般錯誤。但是case1,case2回傳err1,err2但是在case3的情況下,我需要使用不同的引數呼叫相同的方法,并且如果方法回傳err1,err2也需要處理。如果您有任何建議,請提供。目前我正在以下面的方式處理,但試圖看看我是否可以簡化呼叫 case1、case2 的重復性。
_, err := doSomething(var1)
if err != nil {
switch err.Error() {
case case1:
return err1
case case2:
return err2
case case3:
_, err := doSomething(var2)
switch err.Error() {
case case1:
return err1
case case2:
return err2
default:
return err
}
default:
return err
如果您需要更多詳細資訊或需要對我的問題本身進行更多說明,請告訴我。
提前致謝。
uj5u.com熱心網友回復:
翻譯特殊情況的錯誤。繼續普通處理。
_, err := doSomething(var1)
if err != nil {
if err.Error() == case3 {
_, err = doSomething(var2)
}
switch err.Error() {
case case1:
return err1
case case2:
return err2
default:
return err
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/414529.html
標籤:
