登录
首页 >  Golang >  Go问答

将结构体 B(继承自结构体 A)追加到结构体 A 的切片中

来源:stackoverflow

时间:2024-04-25 12:33:40 122浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习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学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>