我正在使用Golang处理postgresql,但是我不得不做几个查询。如果我将每个查询的结果存储在同一个变量中,我们将其称为“行”,每次将该变量重新分配给新的查询结果,它将自动关闭上一行吗?还是我应该每次手动关闭它们?如果我应该手动关闭它们,如果每次都推迟row.Close()会发生什么情况?那有必要吗?
答案 0 :(得分:0)
如何再次在行Rows.Close()
前调用you assign to
?
不,Rows.Close()
不会被重新分配自动调用。如果您执行多个 different 查询,请使用 different 变量保存每个查询返回的行。分配后,分别致电defer rows.Close()
。
答案 1 :(得分:0)
您需要在每次重新分配前致电rows.Close()
。通过这种方式,您可以从“行”指针的内容中释放内存。
另外,请注意defer rows.Close()
,因为:
rows
不是指针-它将仅对最后分配的对象调用Close()
。