我想知道如何在嵌套结构中定义和初始化结构和数组,例如:
type State struct {
id string `json:"id" bson:"id"`
Cities
}
type City struct {
id string `json:"id" bson:"id"`
}
type Cities struct {
cities []City
}
Run Code Online (Sandbox Code Playgroud)
现在我如何初始化这样的结构,如果有人对如何创建结构本身有不同的想法.
谢谢
Not*_*fer 29
在您的情况下,简写文字语法将是:
state := State {
id: "CA",
Cities: Cities{
[]City {
{"SF"},
},
},
}
Run Code Online (Sandbox Code Playgroud)
如果您不想要文字的键:值语法,则更短:
state := State {
"CA", Cities{
[]City {
{"SF"},
},
},
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果城市不包含除[]城市以外的任何内容,只需使用一片城市.这将导致语法稍微缩短,并删除不必要的(可能)层:
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)
}
Run Code Online (Sandbox Code Playgroud)
完整示例,明确写出所有内容:
state := State{
id: "Independent Republic of Stackoverflow",
Cities: Cities{
cities: []City{
City{
id: "Postington O.P.",
},
},
},
}
Run Code Online (Sandbox Code Playgroud)