如何计算Go地图中的项目?

时间:2012-09-22 14:31:28

标签: map go

如果我想计算地图结构中的项目,我应该使用什么语句? 我试着用

for _, _ := range m {...}

但似乎语法错误。

2 个答案:

答案 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)
  }