我正在尝试将一个切片结构分配给一个切片[]interface{}(以传递给AppEngine datastore.PutMulti。但是,由于这两种类型显然不兼容,这会导致编译错误:cannot use type[]*MyStruct as type []interface { } in assignment基本上我有:var src []*MyStructvar dest []interface{}…dest = src // This line fails.反正是有复制src到dest不复制一个-AT-A-时间每个元素?
1 回答

三国纷争
TA贡献1804条经验 获得超7个赞
您将不得不一次复制一次。没有办法解决。
如果有助于接受这一点,则应考虑以下事实:将结构包装在接口中实际上确实将其包装在内存级别。接口包含指向原始类型的指针和类型本身的描述符。将单个结构投射到接口时,您实际上是在包装它。因此,必须一次复制一次,以便将结构包装在接口中。
- 1 回答
- 0 关注
- 231 浏览
添加回答
举报
0/150
提交
取消