Jeśli chcę policzyć elementy w strukturze mapy, jakiej instrukcji powinienem użyć? Próbowałem użyć
for _, _ := range m {...}
ale wydaje się, że składnia jest fałszywa.
Jeśli chcę policzyć elementy w strukturze mapy, jakiej instrukcji powinienem użyć? Próbowałem użyć
for _, _ := range m {...}
ale wydaje się, że składnia jest fałszywa.
for _, _ := range m {...}
i for _ := range m {}
nie będą kompilować b / c :=
, którego nie można używać _
tylko z LHS. =
w takich przypadkach należy użyć zamiast tego.
Odpowiedzi:
Użyj len(m)
. Z 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
Oto kilka przykładów przeniesionych z wycofanej dokumentacji SO:
m := map[string]int{}
len(m) // 0
m["foo"] = 1
len(m) // 1
Jeśli zmienna wskazuje na nil
mapę, len
zwraca 0.
var m map[string]int
len(m) // 0
Wyciąg z map - Liczenie elementów mapy . Oryginalnym autorem była Simone Carletti . Szczegóły atrybucji można znaleźć na stronie współtwórcy . Źródło jest objęte licencją CC BY-SA 3.0 i można je znaleźć w archiwum Dokumentacji . Identyfikator tematu odniesienia: 732 i identyfikator przykładu: 2528.
for _ := range m {}
, nie ma potrzeby stosowania dwóch argumentów.