我想知道如何在嵌套结构中定义、初始化一个结构数组,例如:
type State struct {
id string `json:"id" bson:"id"`
Cities
}
type City struct {
id string `json:"id" bson:"id"`
}
type Cities struct {
cities []City
}
现在我该如何初始化这样一个结构体,如果有人对如何创建结构体本身有不同的想法,请告诉我。
谢谢。
在您的情况下,速记文字字面量语法将是:
state := State {
id: "CA",
Cities: Cities{
[]City {
{"SF"},
},
},
}
如果您不想使用字面量的键值语法,可以更短:
state := State {
"CA", Cities{
[]City {
{"SF"},
},
},
}
顺便说一句,如果Cities除了[]City之外没有其他内容,只需使用City的切片。这将导致语法更短,并去除一个不必要的(可能)层:
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)
}
完整的示例,所有内容都明确写出:
state := State{
id: "Independent Republic of Stackoverflow",
Cities: Cities{
cities: []City{
City{
id: "Postington O.P.",
},
},
},
}