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

shi*_*ley 76 map go

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

for _, _ := range m {...}
Run Code Online (Sandbox Code Playgroud)

但似乎语法是错误的.

zzz*_*zzz 154

使用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
Run Code Online (Sandbox Code Playgroud)

以下是从现已退役的SO文档中移植的几个示例:

m := map[string]int{}
len(m) // 0

m["foo"] = 1
len(m) // 1
Run Code Online (Sandbox Code Playgroud)

如果变量指向nil地图,则len返回0.

var m map[string]int
len(m) // 0
Run Code Online (Sandbox Code Playgroud)

摘自地图 - 计算地图元素.原作者是Simone Carletti.归因详细信息可在贡献者页面上找到.源是根据CC BY-SA 3.0许可的,可以在文档存档中找到.参考主题ID:732和示例ID:2528.


mar*_*arq 6

对于任何想要计算嵌套映射中元素数量的人:

  var count int
  m := map[string][]int{}
  for _, t := range m {
    count += len(t)
  }
Run Code Online (Sandbox Code Playgroud)