我試圖了解是否有更好的方法來(lái)簡(jiǎn)化 golang 中重復(fù)出現(xiàn)的 switch 案例。我有一個(gè)可以返回多個(gè)錯(cuò)誤的方法,但我對(duì) 3 個(gè)特定錯(cuò)誤感興趣,我需要返回一個(gè)特定的帶注釋的錯(cuò)誤而不是一般錯(cuò)誤。但是case1,case2返回err1,err2但是在case3的情況下,我需要使用不同的參數(shù)調(diào)用相同的方法,并且如果方法返回err1,err2也需要處理。如果您有任何建議,請(qǐng)?zhí)峁D壳拔艺谝韵旅娴姆绞教幚?,但試圖看看我是否可以簡(jiǎn)化調(diào)用 case1、case2 的重復(fù)性。 _, 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如果您需要更多詳細(xì)信息或需要對(duì)我的問(wèn)題本身進(jìn)行更多說(shuō)明,請(qǐng)告訴我。
1 回答

呼啦一陣風(fēng)
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
翻譯特殊情況的錯(cuò)誤。繼續(xù)普通處理。
_, 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
}
}
- 1 回答
- 0 關(guān)注
- 228 瀏覽
添加回答
舉報(bào)
0/150
提交
取消