登录
首页 >  Golang >  Go问答

附加到实现的基本接口切片的切片

来源:stackoverflow

时间:2024-04-29 13:36:36 414浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《附加到实现的基本接口切片的切片》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

为什么以下不起作用?

locations := make([]*locationevent, 0)
data := make([]event, 0)
data = append(data, locations...)

其中 *locationevent(结构)实现 event(接口)。

虽然以下工作正常:

data = append(data, &LocationEvent{}, &LocationEvent{})

那么使用 ... 扩展实际的 []*locationevent 切片有何不同?


解决方案


切片类型必须与 append 函数中的可变参数类型完全匹配。 locations 的类型为 []*LocationEvent,因此与 []Event 不兼容。使用切片时,Go 中不会自动“向下转型”。

您必须将位置复制到 Event 的新切片,或将 locations 的项目逐一添加到 data 切片。

更多解释请看这里:https://stackoverflow.com/a/12754757/6655315

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《附加到实现的基本接口切片的切片》文章吧,也可关注golang学习网公众号了解相关技术文章。

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