登录
首页 >  Golang >  Go问答

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

来源:Golang技术栈

时间:2023-03-22 13:30:12 490浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《将结构切片转换为空接口切片》,聊聊golang,我们一起来看看吧!

问题内容

我正在尝试将一个结构切片分配给一个切片[]interface{}(传递到 AppEngine 的datastore.PutMulti. 但是,这会导致编译错误,因为这两种类型显然不兼容:
cannot use type[]*MyStruct as type []interface { } in assignment

基本上我有:

var src []*MyStruct
var dest []interface{}
鈥�
dest = src  // This line fails.

无论如何都可以复制src而不dest一次复制每个元素?

正确答案

您将不得不一次复制一份。没有办法解决它。

如果它有助于接受这一点,您应该考虑在接口中包装结构实际上确实在内存级别包装它的事实。接口包含指向原始类型的指针和类型本身的描述符。将单个结构转换为接口时,您实际上是在包装它。因此,为了将结构包装在接口中,必须一次复制一个。

今天带大家了解了golang的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表