挑战:
将结构体切片分配给空接口类型切片由于表观类型可能会产生编译错误不兼容。
问题:
提供的代码尝试将一片结构 []*MyStruct 复制到一片空接口 []interface{}。然而,这些类型被认为是不兼容的,导致赋值失败。
解决方案:
不幸的是,没有直接的方法将结构体切片复制到接口中切片,无需手动将每个元素一一复制。这是因为在接口中包装结构体实际上需要在内存级别包装它。
说明:
接口既包含指向原始类型的指针,也包含指向原始类型的指针。类型本身的描述符。将结构体转换为接口时,该结构体本质上是包装在接口内的。
因此,要将每个结构体复制到接口切片中,必须一次复制一个单独的元素,从而有效地将每个结构体包装在一个界面。
以上是如何在 Go 中将结构体切片复制到接口切片中?的详细内容。更多信息请关注PHP中文网其他相关文章!