我有以下嵌套结构:
type PDescr struct {
Name string
Dir int32
}
type DDescr struct {
MPins map[string]*PDescr
type P_DB struct {
MId int32
MDevs map[string]*DDescr
}
type S_DB struct {
TId int32
}
type Main_DB struct {
FId int32
Path string
PDb *P_DB
SDb *S_DB
}
我的主要结构是Main_DB。
在Go中,我开始生成结构初始化,无法理解如何执行此操作:
我的最新版本的sach初始化是以下未编译的:
book=&pb.Main_DB{
FId: 666,
Path: "my_path",
PDb: &pb.P_DB{
MId: 5,
MDevs: []string*DDescr {
MPins: map[string]*PDescr {
Name: "aa",
Dir: 7,
},
},
},
SDb: &pb.S_DB{
TId: 777,
},
}
我坚持MDevs map[string]*DDescr
初始化。我不知道传播价值的正确程度。
有什么想法吗?
谢谢!
答案 0 :(得分:1)
您提供的代码中存在一些语法错误,不确定是否因为您试图提供更短的版本来举例说明。
此外,您缺少初始化嵌套地图的key
。
示例:
MDevs: map[string]*DDescr
因此
MDevs
为map
string
个密钥和*DDescr
值,可以初始化为MDevs: map[string]*DDescr{ "first": &DDescr{ `fields from this struct` } }
我试图在这里重新制作你的例子,这很好:https://play.golang.org/p/Zn8u0f92Xn