Go 맵에서 항목을 계산하는 방법은 무엇입니까?


89

맵 구조의 항목을 계산하려면 어떤 문을 사용해야합니까? 나는 사용하려고했다

for _, _ := range m {...}

그러나 구문이 거짓 인 것 같습니다.


2
주제에서 약간 벗어난 경우에도 사용할 수 있으며 for _ := range m {}두 개의 인수가 필요하지 않습니다.
Elazar Leibovich 2012 년

1
BTW, 둘 다 for _, _ := range m {...}및의 for _ := range m {}b / c를 컴파일 :=하지 않으며 _LHS에서만 사용할 수 없습니다 . =이 경우 대신 사용해야합니다.
zzzz

답변:


176

사용 len(m). 에서 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

다음은 현재 폐기 된 SO 문서에서 포팅 한 몇 가지 예입니다.

m := map[string]int{}
len(m) // 0

m["foo"] = 1
len(m) // 1

변수가 nil맵을 가리키는 경우 len0 을 반환합니다.

var m map[string]int
len(m) // 0

Maps-Counting map elements 에서 발췌 . 원저자는 Simone Carletti였습니다 . 기여 세부 정보는 기여자 페이지 에서 확인할 수 있습니다 . 소스는 CC BY-SA 3.0에 따라 사용이 허가되었으며 문서 아카이브 에서 찾을 수 있습니다 . 참조 주제 ID : 732 및 예제 ID : 2528.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.