Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 将结构B(从结构a继承)附加到结构a的切片_Go_Inheritance_Struct_Append_Slice - Fatal编程技术网

Go 将结构B(从结构a继承)附加到结构a的切片

Go 将结构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 {

我有一个从结构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)

}
运行此代码时,它会生成一个错误:不能在append中将col2(type*B)用作type*A

请问怎么了?我是新来的


Ps:很抱歉我的英语不好

col1.Cols是*A型,col2是*B型,col2.A是A类,如果你想在切片中添加新元素,它们应该是相同的类型。 所以如果你把最后一句话改成

col1.Cols = append(col1.Cols, &col2.A)

它会起作用的

围棋没有继承权。如果你想附加(指向)Bs,你必须有一片(指向)Bs的指针。