如何访问另一个Struct里面的golang Struct Array?

时间:2016-02-24 07:47:07

标签: go

如何访问另一个Struct里面的Struct Array的字段?

我的结构如下: -

type Company struct {
Id              bson.ObjectId `bson:"_id,omitempty"`
Company_name    string
Admin           UserMinimal
Process         []ProcessItem
}

type ProcessItemMinimal  struct {
Id              bson.ObjectId `bson:"_id,omitempty"`
Process_name    string
Processtype     int64   
}

type ProcessItem  struct{
ProcessItemMinimal  `bson:",inline"`
Sortorder           int64   
}

我需要在Company结构中的[] ProcessItem中存储一些数据。 数据将是这样的。

ProcessItem[0]=Process_name:"Enquiry",Processtype:0,Sortorder:0}
ProcessItem[1]=Process_name:"Converted",Processtype:1,Sortorder:1}
ProcessItem[2]={Process_name:"Enquiry",Processtype:1,Sortorder:2}

1 个答案:

答案 0 :(得分:2)

如果您正在寻找使用composite struct literals设置数据,可以这样做:

company.Process = []ProcessItem{
    ProcessItem{
        ProcessItemMinimal: ProcessItemMinimal{
            Process_name: "Enquiry",
            Processtype:  0,
        },
        Sortorder: 0,
    },
    ProcessItem{
        ProcessItemMinimal: ProcessItemMinimal{
            Process_name: "Converted",
            Processtype:  1,
        },
        Sortorder: 1,
    },
}

创建结构文字时必须指定ProcessItemMinimal,因为the Specification表示:

  

提升字段的作用类似于结构的普通字段,但它们除外   不能在结构的复合文字中用作字段名称。