Bir Go haritasındaki öğeler nasıl sayılır?


91

Harita yapısındaki öğeleri saymak istersem, hangi ifadeyi kullanmalıyım? Kullanmayı denedim

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

ancak sözdizimi yanlış görünüyor.


2
Biraz konu dışı, ayrıca kullanabilirsiniz for _ := range m {}, orada iki argümana gerek yok.
Elazar Leibovich

1
BTW, yalnızca LHS'lerle kullanılamayan b / c'yi derlemeyecek for _, _ := range m {...}ve for _ := range m {}derlemeyecektir . bunun yerine bu durumlarda kullanılmalıdır. :=_=
zzzz

Yanıtlar:


180

Kullanın len(m). Http://golang.org/ref/spec#Length_and_capacity adresinden

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

İşte artık kullanımdan kaldırılan SO belgelerinden alınan birkaç örnek:

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

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

Değişken bir nilharitayı gösteriyorsa len0 döndürür.

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

Haritalardan Alıntı - Harita öğelerini sayma . Orijinal yazar Simone Carletti idi . İlişkilendirme ayrıntıları katkıda bulunan sayfasında bulunabilir . Kaynak CC BY-SA 3.0 altında lisanslanmıştır ve Dokümantasyon arşivinde bulunabilir . Referans konu ID: 732 ve örnek ID: 2528.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.