将结构体切片转换为空接口切片
由于类型原因,将结构体切片分配给空接口切片并不简单不兼容,如下所示code:
type MyStruct struct { // ... } var src []*MyStruct var dest []interface{} dest = src // Compilation error
出现此错误是因为编译器将两种类型识别为不兼容。要解决此问题,必须手动复制每个元素:
for _, s := range src { dest = append(dest, s) }
尽管逐个复制元素很繁琐,但这是必要的,因为将结构体转换为接口涉及将结构体包装在接口指针和类型中描述符。单独复制每个元素可确保正确执行此包装过程。
以上是在 Go 中如何将一片结构转换为一片空接口?的详细内容。更多信息请关注PHP中文网其他相关文章!