在 Go 中,我们经常在语句中编写带有声明的代码,if
并且return err
. 像这样:
if res, err := getResult(); err != nil {
return err
} else {
fmt.Println(res)
// do something with res
}
但是 linter 总是告诉我应该在else
之后删除块return
:
⚠ https://revive.run/r#indent-error-flow if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary)
代码片段应如下所示以满足建议:
res, err := getResult()
if err != nil {
return err
}
fmt.Println(res)
// do something with res
看来我们应该避免在语句中使用if
声明。
那么正确的 Go 风格是什么?我应该如何处理声明中的if
声明?