相关疑难解决方法(0)

为什么golang reflect.MakeSlice返回不可寻址的值

检查下面的代码段:

http://play.golang.org/p/xusdITxgT-

为什么会这样?因为我的一个参数必须是切片地址.

也许我没有为每个人说清楚.

collection.Find(bson.M{}).All(&result)
Run Code Online (Sandbox Code Playgroud)

上面的代码是我需要切片地址的原因.

结果变量就是我需要的.现在我通常可以这样做

result := make([]SomeStruct, 10, 10)
Run Code Online (Sandbox Code Playgroud)

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

result := reflect.MakeSlice(reflect.SliceOf(SomeType))
Run Code Online (Sandbox Code Playgroud)

它出错:结果必须是切片地址.

reflection go go-reflect

20
推荐指数
1
解决办法
9457
查看次数

标签 统计

go ×1

go-reflect ×1

reflection ×1