ネストされた構造体の内部で、構造体の配列と配列をどのように定義および初期化できますか?
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"},
},
},
}
または、リテラルのkey:value構文が必要ない場合は短くします。
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.",
},
},
},
}