web-dev-qa-db-fra.com

Comment compter les éléments sur une carte Go?

Si je veux compter les éléments dans la structure de la carte, quelle instruction dois-je utiliser? J'ai essayé d'utiliser

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

mais il semble que la syntaxe est fausse.

73
shirley

Utilisez len(m). De 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

Voici quelques exemples portés de la documentation SO) maintenant retirée:

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

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

Si une variable pointe sur une carte nil, alors len renvoie 0.

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

Extrait de Maps - Counting map elements . L'auteur original était Simone Carletti . Les détails d'attribution peuvent être trouvés sur le page contributeur . La source est sous licence CC BY-SA 3. et se trouve dans Archive de la documentation . Sujet de référence ID: 732 et exemple ID: 2528.

150
zzzz