Si quiero contar los elementos en la estructura del mapa, ¿qué declaración debo usar? Traté de usar
for _, _ := range m {...}
pero parece que la sintaxis es falsa.
Si quiero contar los elementos en la estructura del mapa, ¿qué declaración debo usar? Traté de usar
for _, _ := range m {...}
pero parece que la sintaxis es falsa.
for _, _ := range m {...}
y for _ := range m {}
no compilarán b / c del :=
, que no se puede usar con _
solo LHS. =
debe utilizarse en estos casos.
Respuestas:
Utilice 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
Aquí hay un par de ejemplos transferidos de la documentación SO ahora retirada:
m := map[string]int{}
len(m) // 0
m["foo"] = 1
len(m) // 1
Si una variable apunta a un nil
mapa, len
devuelve 0.
var m map[string]int
len(m) // 0
Extraído de Mapas: recuento de elementos del mapa . El autor original fue Simone Carletti . Los detalles de la atribución se pueden encontrar en la página del colaborador . La fuente tiene licencia CC BY-SA 3.0 y se puede encontrar en el archivo de documentación . ID de tema de referencia: 732 e ID de ejemplo: 2528.
for _ := range m {}
, sin necesidad de dos argumentos allí.