在使用如下golang代码做查询数据库时候,测试的时候,进程一直hang住,打日志最后定位到err = rows.Scan(&instance.Field1, &instance.Field2, &instance.Field3)
程序执行到这行就hang住了。怀疑是instance没有创建的原因(instance==nil), 修改为instance := &SomeStruct{} 进程就不在hang住了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SQL := ""
rows, err := db.Query(SQL, primaryKey)
if err != nil {
return nil, err
}
defer rows.Close()

for rows.Next() {
var instance *SomeStruct // 修改为 instance := &SomeStruct{}
err = rows.Scan(&instance.Field1, &instance.Field2, &instance.Field3)
if err != nil {
return nil, err
}
...
}

现在的问题是为啥instance没初始化,rows.Scan的时候不报错而是hang住了呢。