检查下面的代码段:

为什么会这样?因为我的论点之一必须是切片地址。

可能我没有跟大家说清楚。

collection.Find(bson.M{}).All(&result)

上面的代码就是为什么我需要一个切片地址。

这里的结果变量正是我所需要的。现在通常我可以这样做

result := make([]SomeStruct, 10, 10)

但是现在 SomeStruct 是动态的,我需要使用reflect.MakeSlice 创建切片,所以

result := reflect.MakeSlice(reflect.SliceOf(SomeType))

它的错误在于:结果必须是切片地址。