如何在if-else中初始化错误类型

时间:2014-04-21 07:50:25

标签: go

在下面的代码片段中,如何初始化错误变量?

err := nil                // can not compile, show "use of untyped nil"
if xxx {
    err = funcA()
} else {
    err = funcB()
}
if err != nil {
    panic(err)
}

如上所示,{ - 1}}将用于if-else块。我想使用一个变量来获取结果,但是如何在此处初始化err。谢谢!

2 个答案:

答案 0 :(得分:23)

您可以通过声明变量来创建零值错误(将为零)。

var err error
if xxx {
    err = funcA()
} else {
    err = funcB()
}

这是一个常见的习语,你会在很多代码中看到它。

答案 1 :(得分:-1)

这个看起来有些古怪,但也有效:

err := *new(error)