104

マップ構造内の項目を数えたい場合、どのステートメントを使用すればよいですか? 使ってみた

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

しかし、構文が間違っているようです。

4

2 に答える 2

208

を使用し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変数がマップを指している場合は、len0 を返します。

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

Maps - Counting map elementsから抜粋。原作者はシモーネ・カルレッティ。帰属の詳細は寄稿者ページで確認できます。ソースはCC BY-SA 3.0 の下でライセンスされており、ドキュメンテーション アーカイブで見つけることができます。参照トピック ID: 732 およびサンプル ID: 2528。

于 2012-09-22T14:52:19.387 に答える