我有一些Go代码使用" database / sql"来查询数据库。包。大多数这些函数都返回:result, err
或rows, err
。
因此,你最终得到了许多像这样重复的块:
if err != nil {
// Handle Error
}
我已经看过"清洁"仅返回错误的函数的代码:
if err := SomeFunc(); err != nil {
// Handle Error
}
我无法使用这些函数执行此操作,因为稍后当我需要在另一个查询函数中访问变量时,变量会被捕获到范围内。
有没有办法清理这个代码?
答案 0 :(得分:4)
如果他们使用if
在:=
区块中声明,则他们只会被限制在范围内。如果您在if
之外声明它们,则它们位于外部范围内:
var err error
var result SomeResultType
if result,err = SomeFunc(); err != nil {
// Handle error
}
// Do something with result (or error if you want)