Etwas abseits des Themas können Sie auch verwenden for _ := range m {}, ohne dass zwei Argumente erforderlich sind.
Elazar Leibovich
1
Übrigens, beide for _, _ := range m {...}und for _ := range m {}kompilieren nicht b / c der :=, die nicht mit _nur LHSs verwendet werden können. =muss stattdessen in diesen Fällen verwendet werden.
len(s)string type string length in bytes
[n]T,*[n]T array length (== n)[]T slice length
map[K]T map length (number ofdefined keys)
chan T number of elements queued in channel buffer
Hier sind einige Beispiele aus der SO-Dokumentation, die jetzt im Ruhestand ist:
m := map[string]int{}
len(m)// 0
m["foo"]=1
len(m)// 1
Wenn eine Variable auf eine nilKarte zeigt, wird len0 zurückgegeben.
for _ := range m {}
, ohne dass zwei Argumente erforderlich sind.for _, _ := range m {...}
undfor _ := range m {}
kompilieren nicht b / c der:=
, die nicht mit_
nur LHSs verwendet werden können.=
muss stattdessen in diesen Fällen verwendet werden.Antworten:
Verwenden Sie
len(m)
. Von http://golang.org/ref/spec#Length_and_capacityHier sind einige Beispiele aus der SO-Dokumentation, die jetzt im Ruhestand ist:
Wenn eine Variable auf eine
nil
Karte zeigt, wirdlen
0 zurückgegeben.quelle