print nil has golang entry check assignment array map go loops

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]