nil - Iterando a través de un mapa golang
iterate map golang (2)
Por ejemplo,
package main
import "fmt"
func main() {
type Map1 map[string]interface{}
type Map2 map[string]int
m := Map1{"foo": Map2{"first": 1}, "boo": Map2{"second": 2}}
//m = map[foo:map[first: 1] boo: map[second: 2]]
fmt.Println("m:", m)
for k, v := range m {
fmt.Println("k:", k, "v:", v)
}
}
Salida:
m: map[boo:map[second:2] foo:map[first:1]]
k: boo v: map[second:2]
k: foo v: map[first:1]
Tengo un mapa de tipo: map[string]interface{}
Y finalmente, puedo crear algo así como (después de deserializar de un archivo yml usando goyaml)
mymap = map[foo:map[first: 1] boo: map[second: 2]]
¿Cómo puedo iterar a través de este mapa? Intenté lo siguiente:
for k, v := range mymap{
...
}
Pero me sale un error:
cannot range over mymap
typechecking loop involving for loop
Por favor ayuda.
Puedes hacerlo por una línea:
mymap := map[string]interface{}{"foo": map[string]interface{}{"first": 1}, "boo": map[string]interface{}{"second": 2}}
for k, v := range mymap {
fmt.Println("k:", k, "v:", v)
}
La salida es:
k: foo v: map[first:1]
k: boo v: map[second:2]