如果我想计算地图结构中的项目,应该使用什么语句?我尝试使用
for _, _ := range m {...}
但似乎语法是错误的。
如果我想计算地图结构中的项目,应该使用什么语句?我尝试使用
for _, _ := range m {...}
但似乎语法是错误的。
for _, _ := range m {...}
和for _ := range m {}
都不会编译的b / c :=
,而不能_
仅与LHS一起使用。=
在这种情况下必须使用。
Answers:
使用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-对地图元素进行计数。原始作者是西蒙妮·卡莱蒂(Simone Carletti)。归属详细信息可以在贡献者页面上找到。该来源已获得CC BY-SA 3.0的许可,可以在“文档”存档中找到。参考主题ID:732和示例ID:2528。
for _ := range m {}
,在那里不需要两个参数。