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

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

Patricia Arquette
Patricia Arquette原创
2024-12-10 13:07:10310浏览

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

将一片结构转换为一片空接口

将数据传递到 AppEngine 的 datastore.PutMulti 函数时,需要一片 []interface{}。但是,如果您尝试将结构体切片 []*MyStruct 分配给 []interface{} 切片,则可能会导致编译错误。

出现该错误是因为 Go 编译器认为这两种类型不兼容,导致无法将src分配给dest。

解决办法

不幸的是,没有直接的方法将结构体切片复制到空接口切片中,而不单独复制每个元素。这是因为将结构转换为接口会创建该结构的包装版本。接口包含指向原始类型的指针和类型本身的描述符。因此,要正确包装每个结构体,您必须将它们一一复制。

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

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