Nieco poza tematem, możesz również użyć for _ := range m {}, nie ma potrzeby stosowania dwóch argumentów.
Elazar Leibovich
1
BTW, oba 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.
len(s) stringtypestring 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:
for _ := range m {}
, nie ma potrzeby stosowania dwóch argumentów.for _, _ := range m {...}
ifor _ := 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_capacitylen(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
źródło