Junior — Middle
Map məlumatların quruluşunun ölçüsü necə artır?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da, map məlumat strukturu dinamik ölçülü xəritə kimi həyata keçirilmişdir. Yeni elementlər əlavə edilərkən, xəritənin yüklənməsi müəyyən bir həddə çatdıqda (adətən təxminən 6.5 element hər bir kova üçün), ölçü artırılır (rehash): daha çox kovaya malik yeni xəritə yaradılır və mövcud bütün elementlər yeni kovalar arasında yenidən paylanır.
Bu proses avtomatik və istifadəçi üçün şəffaf şəkildə baş verir. Ölçünün artırılması toqquşma ehtimalını aşağı saxlamağa və axtarış və yerləşdirmə əməliyyatlarının yüksək performansını təmin etməyə kömək edir.
Təxminən belə düşünə bilərsiniz:
m := make(map[string]int)
m["a"] = 1
// Çox sayda element əlavə edilərkən, xəritənin daxili tamponu avtomatik olaraq artır
for i := 0; i < 1000; i++ {
m[fmt.Sprintf("key%d", i)] = i
}
Daxili olaraq, Go işləmə vaxtı yükləməni izləyir və lazım olduqda xəritənin ölçüsünü artırır.