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

In the code snippet below, how do I initialize an error variable?

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

As you can see above, err will be used in the if-else blocks. I want to use one variable to get the result, but how do I initialize err here. Thanks!

You can create a zero-valued error (which will be nil) by declaring the variable.

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

It's a common idiom, and you'll see it in plenty of code.

This one looks a little hacky, but is valid too:

err := *new(error)