英文:
How to initialize error type in if-else
问题
在下面的代码片段中,我该如何初始化一个错误变量?
err := nil // 无法编译,显示“use of untyped nil”
if xxx {
err = funcA()
} else {
err = funcB()
}
if err != nil {
panic(err)
}
如上所示,err
将在if-else块中使用。我想使用一个变量来获取结果,但是在这里我该如何初始化err
。谢谢!
英文:
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!
答案1
得分: 62
你可以通过声明变量来创建一个零值错误(将为nil)。
var err error
if xxx {
err = funcA()
} else {
err = funcB()
}
这是一个常见的习惯用法,在很多代码中都会看到。
英文:
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.
答案2
得分: 6
这个看起来有点粗糙,但也是有效的:
err := *new(error)
英文:
This one looks a little hacky, but is valid too:
err := *new(error)
答案3
得分: 1
另一种简单的方法是:
err := error(nil)
英文:
Another way is simply:
err := error(nil)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论