Welche Anweisung sollte ich verwenden, wenn ich die Elemente in der Kartenstruktur zählen möchte? Ich habe versucht zu benutzen
for _, _ := range m {...}
aber es scheint, dass die Syntax falsch ist.
Welche Anweisung sollte ich verwenden, wenn ich die Elemente in der Kartenstruktur zählen möchte? Ich habe versucht zu benutzen
for _, _ := range m {...}
aber es scheint, dass die Syntax falsch ist.
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.
Antworten:
Verwenden Sie len(m)
. Von 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
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 nil
Karte zeigt, wird len
0 zurückgegeben.
var m map[string]int
len(m) // 0
Auszug aus Karten - Kartenelemente zählen . Der ursprüngliche Autor war Simone Carletti . Zuordnungsdetails finden Sie auf der Beitragsseite . Die Quelle ist unter CC BY-SA 3.0 lizenziert und befindet sich im Dokumentationsarchiv . Referenzthema ID: 732 und Beispiel-ID: 2528.
for _ := range m {}
, ohne dass zwei Argumente erforderlich sind.