Sobes.tech
Senior

Go'da map nedir, iç yapısı nasıldır, çakışma nedir ve onunla nasıl başa çıkılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da map, anahtar-değer çiftlerini hızlı erişimle saklamak için yerleşik bir veri türüdür. map içinde bir karma tablo mekanizması uygulanır.

Dahili yapı:

  • Anahtar, tam sayıya hashlenir.
  • Hash, çiftlerin saklandığı bucket'ın indeksini belirler.
  • Her bucket, birkaç anahtar-değer çifti içerir.

Çakışma: farklı anahtarların aynı hash'e sahip olması ve aynı bucket'a düşmesi durumu. Bunu yönetmek için Go kullanır:

  • Aynı bucket'ta birkaç çift saklama.
  • Çok sayıda çakışma olduğunda, bucket sayısının artırılmasıyla yeniden dağıtım (rehash) yapılır.

Bu, çakışmalara rağmen öğelere hızlı erişimi sağlar.

Map kullanım örneği:

m := make(map[string]int)
m["apple"] = 5
fmt.Println(m["apple"]) // 5

Bu nedenle, Go'daki map, içsel optimizasyonlarıyla çakışma etkisini en aza indiren verimli bir yapıdır.