首页 >后端开发 >Golang >在 Go 中如何将一片结构转换为一片空接口?

在 Go 中如何将一片结构转换为一片空接口?

DDD
DDD原创
2024-12-05 10:07:15380浏览

How Can I Convert a Slice of Structs to a Slice of Empty Interfaces in Go?

将结构体切片转换为空接口切片

由于类型原因,将结构体切片分配给空接口切片并不简单不兼容,如下所示code:

type MyStruct struct {
    // ...
}

var src []*MyStruct
var dest []interface{}
dest = src  // Compilation error

出现此错误是因为编译器将两种类型识别为不兼容。要解决此问题,必须手动复制每个元素:

for _, s := range src {
    dest = append(dest, s)
}

尽管逐个复制元素很繁琐,但这是必要的,因为将结构体转换为接口涉及将结构体包装在接口指针和类型中描述符。单独复制每个元素可确保正确执行此包装过程。

以上是在 Go 中如何将一片结构转换为一片空接口?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn