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 soit fausse.
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 soit fausse.
for _, _ := range m {...}
et for _ := range m {}
ne compilera pas b / c du :=
, qui ne peut pas être utilisé avec _
seulement LHS. =
doit être utilisé dans ce cas à la place.
Réponses:
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 à partir de la documentation SO maintenant retirée:
m := map[string]int{}
len(m) // 0
m["foo"] = 1
len(m) // 1
Si une variable pointe vers une nil
carte, len
renvoie 0.
var m map[string]int
len(m) // 0
Extrait de Maps - Comptage des éléments cartographiques . L'auteur original était Simone Carletti . Les détails d'attribution se trouvent sur la page des contributeurs . La source est sous licence CC BY-SA 3.0 et peut être trouvée dans l' archive de documentation . ID de sujet de référence: 732 et ID d'exemple: 2528.
for _ := range m {}
, pas besoin de deux arguments ici.