Iterating over all the keys of a map

Martin Redmond picture Martin Redmond · Dec 3, 2009 · Viewed 273.4k times · Source

Is there a way to get a list of all the keys in a Go language map? The number of elements is given by len(), but if I have a map like:

m := map[string]string{ "key1":"val1", "key2":"val2" };

How do I iterate over all the keys?

Answer

Jonathan Feinberg picture Jonathan Feinberg · Dec 3, 2009

https://play.golang.org/p/JGZ7mN0-U-

for k, v := range m { 
    fmt.Printf("key[%s] value[%s]\n", k, v)
}

or

for k := range m {
    fmt.Printf("key[%s] value[%s]\n", k, m[k])
}

Go language specs for for statements specifies that the first value is the key, the second variable is the value, but doesn't have to be present.