Go 将结构B(从结构a继承)附加到结构a的切片
我有一个从结构a继承的结构B。我有另一个结构C(包含结构a的一个片段),我想将B附加到CGo 将结构B(从结构a继承)附加到结构a的切片,go,inheritance,struct,append,slice,Go,Inheritance,Struct,Append,Slice,我有一个从结构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 {
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)
}
运行此代码时,它会生成一个错误:不能在append中将col2(type*B)用作type*A
请问怎么了?我是新来的
Ps:很抱歉我的英语不好col1.Cols是*A型,col2是*B型,col2.A是A类,如果你想在切片中添加新元素,它们应该是相同的类型。 所以如果你把最后一句话改成
col1.Cols = append(col1.Cols, &col2.A)
它会起作用的 围棋没有继承权。如果你想附加(指向)Bs,你必须有一片(指向)Bs的指针。