Jis*_*hap -1 resultset exit-code go
嗨,我是golang的新手,
我使用defer来关闭我的结果集.
defer res.Close()
Run Code Online (Sandbox Code Playgroud)
我想res is nil
在打电话之前 检查一下res.Close()
.
我在函数的末尾有下面的代码块,但是由于某些错误而退出时不会调用它.
if(res!=nil){
res.Close()
}
Run Code Online (Sandbox Code Playgroud)
我想知道有什么办法可以实现这个目的defer
.
defer if(res!=nil){
res.Close()
}
Run Code Online (Sandbox Code Playgroud)
处理这些情况的惯用方法是什么?
您可以传递给defer
函数调用,这可以是函数文字:
defer func() {
if res!=nil {
res.Close()
}
}()
Run Code Online (Sandbox Code Playgroud)
请注意,通常通过defer
在资源分配后立即编写语句来避免此问题.