Немного не по теме, вы тоже можете использовать for _ := range m {}, нет необходимости в двух аргументах.
Элазар Лейбович
1
Кстати, оба for _, _ := range m {...}и for _ := range m {}не будут компилировать b / c из :=, что не может использоваться _только с LHS. =вместо этого следует использовать.
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
Вот пара примеров, портированных из устаревшей документации SO:
for _ := range m {}
, нет необходимости в двух аргументах.for _, _ := range m {...}
иfor _ := range m {}
не будут компилировать b / c из:=
, что не может использоваться_
только с LHS.=
вместо этого следует использовать.Ответы:
Используйте
len(m)
. С 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
Вот пара примеров, портированных из устаревшей документации SO:
m := map[string]int{} len(m) // 0 m["foo"] = 1 len(m) // 1
Если переменная указывает на
nil
карту,len
возвращает 0.var m map[string]int len(m) // 0
источник