如果我想计算地图结构中的项目,我应该使用什么语句?我试着用
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.
对于任何想要计算嵌套映射中元素数量的人:
var count int
m := map[string][]int{}
for _, t := range m {
count += len(t)
}
Run Code Online (Sandbox Code Playgroud)