How to count items in a Go map?
Use len(m)
. From http://golang.org/ref/spec#Length_and_capacity
len(s) string type string length in bytes
[n]T, *[n]T array length (== n)
[]T slice length
map[K]T map length (number of defined keys)
chan T number of elements queued in channel buffer
Here are a couple examples ported from the now-retired SO documentation:
m := map[string]int{}
len(m) // 0
m["foo"] = 1
len(m) // 1
If a variable points to a nil
map, then len
returns 0.
var m map[string]int
len(m) // 0
Excerpted from Maps - Counting map elements. The original author was Simone Carletti. Attribution details can be found on the contributor page. The source is licenced under CC BY-SA 3.0 and may be found in the Documentation archive. Reference topic ID: 732 and example ID: 2528.
For anyone wanting to count the number of elements in a nested map:
var count int
m := map[string][]int{}
for _, t := range m {
count += len(t)
}