Bra*_*ody 36 struct nested literals go
我怎样才能做到这一点:
type A struct {
MemberA string
}
type B struct {
A
MemberB string
}
Run Code Online (Sandbox Code Playgroud)
...
b := B {
MemberA: "test1",
MemberB: "test2",
}
fmt.Printf("%+v\n", b)
Run Code Online (Sandbox Code Playgroud)
编译给我:"结构文字中的未知B字段'MemberA'"
当我提供像这样的文字结构成员值时,如何初始化MemberA(来自"父"结构)?
nem*_*emo 39
初始化时,匿名结构只能在其类型名称下(在您的情况下A
).与结构相关联的成员和函数仅在实例存在后导出到外部.
您必须提供一个有效的A
初始化实例MemberA
:
b := B {
A: A{MemberA: "test1"},
MemberB: "test2",
}
Run Code Online (Sandbox Code Playgroud)
编译器错误
struct literal中未知的B字段'MemberA'
确切地说:没有,MemberA
因为它仍在,A
而不是在B
.事实上,
B
永远不会有MemberA
,它将永远留在A
.能够访问MemberA
一个实例B
只是语法糖.