djd*_*djd 4 google-app-engine go
我正在尝试将一片结构分配给一个切片[]interface{}(传递到AppEngine中datastore.PutMulti.但是,这会导致编译错误,因为这两种类型显然是不兼容的:
cannot use type[]*MyStruct as type []interface { } in assignment
基本上我有:
var src []*MyStruct
var dest []interface{}
…
dest = src // This line fails.
Run Code Online (Sandbox Code Playgroud)
有没有反复复制src到dest每个元素一次一个?
你将不得不一次复制一次.没有办法绕过它.
如果它有助于接受这个,你应该考虑这样一个事实,即在接口中包装一个struct实际上确实将它包装在内存级别.接口包含指向原始类型的指针和类型本身的描述符.将单个结构体转换为接口时,您实际上是在包装它.因此,为了将结构包装在界面中,有必要一次一个地复制它们.
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |