如何计算围棋地图中的项目?

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

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

但似乎语法是错误的。

114660 次浏览

Use len(m). From 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

Here are a couple examples ported from the now-retired SO documentation:

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


m["foo"] = 1
len(m) // 1

If a variable points to a nil map, then len returns 0.

var m map[string]int
len(m) // 0

Excerpted from Maps - Counting map elements. The original author was Simone Carletti. Attribution details can be found on the contributor page. The source is licenced under CC BY-SA 3.0 and may be found in the Documentation archive. Reference topic ID: 732 and example ID: 2528.

For anyone wanting to count the number of elements in a nested map:

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