我有一个继承自结构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(类型* B)作为附加类型* A.
怎么了?我比较新
Ps:抱歉我的英语不好
col1.Cols是类型* A,col2是类型* B,col2.A是类型A,如果要向切片添加新元素,它们应该是相同的类型。所以,如果您将最后一个语句更改为
col1.Cols = append(col1.Cols, &col2.A)
它会工作。