嗨,我是golang的新手,
我使用defer来关闭我的结果集。
defer res.Close()
我想在调用res is nil
之前检查是否res.Close()
。
我在函数末尾有下面的代码块,但是由于某些错误退出时不会调用它。
if(res!=nil){
res.Close()
}
我想知道有什么方法可以使用defer
来实现这一点。
defer if(res!=nil){
res.Close()
}
处理这些情况的惯用方法是什么?
答案 0 :(得分:5)
您可以传递给函数调用defer
,这可以是函数文字:
defer func() {
if res!=nil {
res.Close()
}
}()
请注意,通常在资源分配后立即编写defer
语句来避免此问题。