在golang中的嵌套结构中初始化结构数组

我想知道如何在嵌套结构中定义和初始化结构以及结构数组,例如:</ p >

  type状态结构{
id字符串json:“ id” bson:“ id”
城市
}

type城市结构{
id字符串json :“ id” bson:“ id”
}

type城市结构{
城市[]城市
}
</ code> </ pre>

现在我该如何 初始化这样的结构,如果有人对如何自己创建结构有不同的想法。</ p>

谢谢</ p>
</ div>

展开原文

原文

I am wondering how can I define and initialize and array of structs inside a nested struct, for example:

type State struct {
    id string `json:"id" bson:"id"`
    Cities 
}

type City struct {
    id string `json:"id" bson:"id"`
}

type Cities struct {
    cities []City
}

Now how can I Initialize such a structure and if someone has a different idea about how to create the structure itself.

Thanks

2个回答



在您的情况下,简写文字语法为:</ p>

  state:= State  {
id:“ CA”,
城市:城市{
[]城市{
{“ SF”},
},
},
}
</ code> </ pre>

或更短,如果您不希望使用文字的key:value语法:</ p>

  state:= State {
“ CA”,Cities {

[]城市{
{“ SF”},
},
},
}
</ code> </ pre>

BTW(如果城市不包含任何内容) 除了[] City外,只需使用一片City。 这将导致语法缩短一些,并删除不必要的(可能是)图层:</ p>

  type状态struct {
id字符串json:“ id” bson:“ id “
Cities [] City
}

type City struct {
id stringjson:” id“ bson:” id“
}

func main(){
状态 :=状态{
id:“ CA”,
城市:[]城市{
{“ SF”},
},
}

fmt.Println(state)
}
</ code> </ pre>
</ div>

展开原文

原文

In your case the shorthand literal syntax would be:

state := State {
    id: "CA",
    Cities:  Cities{
        []City {
            {"SF"},
        },
    },
}

Or shorter if you don't want the key:value syntax for literals:

state := State {
    "CA", Cities{
        []City {
            {"SF"},
        },
    },
}    

BTW if Cities doesn't contain anything other than the []City, just use a slice of City. This will lead to a somewhat shorter syntax, and remove an unnecessary (possibly) layer:

type State struct {
    id string `json:"id" bson:"id"`
    Cities []City
}

type City struct {
    id string `json:"id" bson:"id"`
}


func main(){
    state := State {
        id: "CA",
        Cities:  []City{
             {"SF"},
        },
    }

    fmt.Println(state)
}

drxdn40242
drxdn40242 太好了,我猜直到直到现在我对Go中的嵌入事物和嵌套结构还不足够了解之后,这对我来说已经很新了,但是非常感谢:D
5 年多之前 回复



完整显示所有示例的示例:</ p>

  state:= State {\  n id:“独立的Stackoverflow共和国”,
城市:城市{
城市:[]城市{
城市{
id:“ Postington OP”,
},
},
},\ n}
</ code> </ pre>
</ div>

展开原文

原文

Full example with everything written out explicitly:

state := State{
    id: "Independent Republic of Stackoverflow",
    Cities: Cities{
        cities: []City{
            City{
                id: "Postington O.P.",
            },
        },
    },
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐