当前位置: > > > > 附加到实现的基本接口切片的切片
来源:stackoverflow
2024-04-29 13:36:36
0浏览
收藏
小伙伴们对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
切片。
更多解释请看这里:
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《附加到实现的基本接口切片的切片》文章吧,也可关注公众号了解相关技术文章。