如何初始化嵌套的复杂结构

时间:2016-12-20 14:28:54

标签: go

我有以下嵌套结构:

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初始化。我不知道传播价值的正确程度。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您提供的代码中存在一些语法错误,不确定是否因为您试图提供更短的版本来举例说明。

此外,您缺少初始化嵌套地图的key

  

示例:MDevs: map[string]*DDescr

     

因此MDevsmap   string个密钥和*DDescr值,可以初始化为

MDevs: map[string]*DDescr{
              "first": &DDescr{ `fields from this struct` }
}

我试图在这里重新制作你的例子,这很好:https://play.golang.org/p/Zn8u0f92Xn