If I want to count the items in the map structure, what statement should I use? I tried to use
for _, _ := range m {...}
but it seems the syntax is false.
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.