遇到一个报错:
for cur.Next(ctx){
var app *App
err=cur.Decode(app)
if err!=nil{
panic(err) //panic:cannot Decode to nil value
}
}
改成下面这样就好了:
for cur.Next(ctx){
var app App
err=cur.Decode(&app)
if err!=nil{
panic(err) //无事发生。。。
}
}
原因是第一段代码中*
App是个指针,所以app的零值是nil;
而第二段中App是个结构体,零值是App{},所以app是个初始化为空的结构体,不是nil,所以不会报错;
零值是nil的还有:error, map, chan, slice, interface{}