如果我想计算地图结构中的项目,我应该使用什么语句? 我试着用
for _, _ := range m {...}
但似乎语法错误。
答案 0 :(得分:142)
使用len(m)
。来自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
以下是从现已退役的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
摘自Maps - Counting map elements。原作者是Simone Carletti。归因详情可在contributor page上找到。该来源在CC BY-SA 3.0下获得许可,可以在Documentation archive中找到。参考主题ID:732和示例ID:2528。
答案 1 :(得分:0)
对于任何想要计算嵌套地图中元素数量的人:
var count int
m := map[string][]int{}
for _, t := range m {
count += len(t)
}