当前位置: > > > > 将结构体 B(继承自结构体 A)追加到结构体 A 的切片中
来源:stackoverflow
2024-04-25 12:33:40
0浏览
收藏
来到的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《将结构体 B(继承自结构体 A)追加到结构体 A 的切片中》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!
问题内容
我有一个从结构体 a 继承的结构体 b。我有另一个结构体 c(其中包含结构体 a 的一部分),我想将 b 附加到 c。
package main type A struct { target string } type B struct{ A values []int } type C struct{ Cols []*A } func main() { var values = []int{1,2,3} var col1 = C{} var col2 = &B { A: A{ target: "txt", }, values: values, } col1.Cols = append(col1.Cols, col2) }
运行此代码时,会生成错误:无法在附加中使用 col2 (type *b) as type *a
请问怎么了?我是新人
ps:抱歉我的英语不好
解决方案
col1.cols是*a类型,col2是*b类型,col2.a是a类型,如果要向切片添加新元素,它们应该是相同的类型。 所以如果你将最后一条语句更改为
col1.Cols = append(col1.Cols, &col2.A)
它会起作用的。
好了,本文到此结束,带大家了解了《将结构体 B(继承自结构体 A)追加到结构体 A 的切片中》,希望本文对你有所帮助!关注公众号,给大家分享更多Golang知识!