Se voglio contare gli elementi nella struttura della mappa, quale dichiarazione devo usare? Ho provato a usare
for _, _ := range m {...}
ma sembra che la sintassi sia falsa.
Se voglio contare gli elementi nella struttura della mappa, quale dichiarazione devo usare? Ho provato a usare
for _, _ := range m {...}
ma sembra che la sintassi sia falsa.
for _, _ := range m {...}
e for _ := range m {}
non compileranno il b / c del :=
, che non può essere utilizzato _
solo con LHS. =
deve essere utilizzato in questi casi invece.
Risposte:
Usa len(m)
. Da 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
Ecco un paio di esempi portati dalla documentazione SO ora ritirata:
m := map[string]int{}
len(m) // 0
m["foo"] = 1
len(m) // 1
Se una variabile punta a una nil
mappa, len
restituisce 0.
var m map[string]int
len(m) // 0
Estratto da Mappe - Conteggio degli elementi della mappa . L'autore originale era Simone Carletti . I dettagli dell'attribuzione possono essere trovati sulla pagina del collaboratore . La fonte è concessa in licenza con CC BY-SA 3.0 e può essere trovata nell'archivio della documentazione . ID argomento di riferimento: 732 e ID esempio: 2528.
for _ := range m {}
, non c'è bisogno di due argomenti lì.