Je me demande comment puis-je définir et initialiser un tableau de structures à l'intérieur d'une structure imbriquée, par exemple:
type State struct {
id string `json:"id" bson:"id"`
Cities
}
type City struct {
id string `json:"id" bson:"id"`
}
type Cities struct {
cities []City
}
Maintenant, comment puis-je initialiser une telle structure et si quelqu'un a une idée différente de la façon de créer la structure elle-même.
Merci
Dans votre cas, la syntaxe littérale abrégée serait:
state := State {
id: "CA",
Cities: Cities{
[]City {
{"SF"},
},
},
}
Ou plus court si vous ne voulez pas la syntaxe clé: valeur pour les littéraux:
state := State {
"CA", Cities{
[]City {
{"SF"},
},
},
}
BTW si Cities ne contient rien d'autre que la [] City, utilisez simplement une tranche de City. Cela conduira à une syntaxe un peu plus courte et supprimera une couche inutile (éventuellement):
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)
}
Exemple complet avec tout écrit explicitement:
state := State{
id: "Independent Republic of Stackoverflow",
Cities: Cities{
cities: []City{
City{
id: "Postington O.P.",
},
},
},
}