匿名嵌套结构用法

我以前问过这个问题,然后删除了它。但我不明白。我尝试了一切但仍然出错。我怎样才能使用这个结构。还是我做错了

type Unit struct{
    category struct{
        name string
    }
}


墨色风雨
浏览 71回答 1
1回答

倚天杖

执行以下操作:var unit = Unit{    category: {        name: "foo",    },}将不起作用,因为语言规范说您必须在使用复合文字值初始化结构的字段时指定类型。例如嵌套结构、映射或切片等。由于category的类型是未命名的复合类型,要初始化该字段,您必须重复未命名复合类型的定义。type Unit struct{    category struct{        name string    }}var unit = Unit{    category: struct{        name string    }{        name: "foo",    },}或者,不要使用匿名结构。type Category struct {    name string}type Unit struct{    category Category}var unit = Unit{    category: Category{        name: "foo",    },}如果你想在声明它的包之外使用这个结构,你必须导出它的字段type Category struct {    Name string}type Unit struct{    Category Category}// ...var unit = mypkg.Unit{    Category: mypkg.Category{        Name: "foo",    },}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go