当前位置: > > > > 将结构体 B(继承自结构体 A)追加到结构体 A 的切片中
将结构体 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知识!
