arrays - resueltos - Inicialice una matriz de estructuras dentro de una estructura anidada en Golang
funciones con estructuras en c (2)
Me pregunto cómo puedo definir e inicializar una matriz de estructuras dentro de una estructura anidada, por ejemplo:
type State struct {
id string `json:"id" bson:"id"`
Cities
}
type City struct {
id string `json:"id" bson:"id"`
}
type Cities struct {
cities []City
}
Ahora, ¿cómo puedo inicializar una estructura de este tipo y si alguien tiene una idea diferente acerca de cómo crear la estructura?
Gracias
Ejemplo completo con todo escrito explícitamente:
state := State{
id: "Independent Republic of ",
Cities: Cities{
cities: []City{
City{
id: "Postington O.P.",
},
},
},
}
En su caso, la sintaxis literal abreviada sería:
state := State {
id: "CA",
Cities: Cities{
[]City {
{"SF"},
},
},
}
O más corto si no quieres la clave: valor de sintaxis para literales:
state := State {
"CA", Cities{
[]City {
{"SF"},
},
},
}
Por cierto, si las Ciudades no contienen otra cosa que no sea la [] Ciudad, solo usa una porción de Ciudad. Esto conducirá a una sintaxis algo más corta y eliminará una capa innecesaria (posiblemente):
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)
}