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 nilmapa, lendevuelve 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í.