マップ構造内のアイテムをカウントする場合、どのステートメントを使用する必要がありますか?使ってみた
for _, _ := range m {...}
しかし、構文は間違っているようです。
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-Counting map elements から抜粋。元の著者は Simone Carletti でした。属性の詳細は、 投稿者ページ にあります。ソースは CC BY-SA 3. でライセンスされており、 Documentation archive にあります。参照トピックID:732および例ID:2528。