Um pouco fora do tópico, você também pode usar for _ := range m {}, sem necessidade de dois argumentos aqui.
Elazar Leibovich
1
BTW, ambos for _, _ := range m {...}e for _ := range m {}não compilarão b / c do :=, que não pode ser usado com _apenas LHSs. =deve ser usado nestes casos.
len(s) stringtypestring 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
Aqui estão alguns exemplos transferidos da documentação do SO agora aposentada:
for _ := range m {}
, sem necessidade de dois argumentos aqui.for _, _ := range m {...}
efor _ := range m {}
não compilarão b / c do:=
, que não pode ser usado com_
apenas LHSs.=
deve ser usado nestes casos.Respostas:
Use
len(m)
. De http://golang.org/ref/spec#Length_and_capacitylen(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
Aqui estão alguns exemplos transferidos da documentação do SO agora aposentada:
m := map[string]int{} len(m) // 0 m["foo"] = 1 len(m) // 1
Se uma variável aponta para um
nil
mapa, entãolen
retorna 0.var m map[string]int len(m) // 0
fonte