Sobes.tech
Senior

Go-da map nədir, daxili quruluşu necədir, toqquşma nədir və onunla necə mübarizə aparılır?

sobes.tech Süni İntellekt

AI-dan cavab

Go'da map — bu daxili tipdir ki, açar-dəyər cütlərini sürətli giriş ilə saxlamaq üçün istifadə olunur. map daxilində bir hash cədvəli mexanizmi tətbiq edilir.

Daxili quruluş:

  • Açar tam ədədə hash edilir.
  • Hash, cütlüklərin saxlanıldığı bucket-in indeksini müəyyən edir.
  • Hər bucket bir neçə açar-dəyər cütlüyünü ehtiva edir.

Çəkilmə: müxtəlif açarların eyni hash-ə malik olması və eyni bucket-ə düşməsi vəziyyəti. Bunu idarə etmək üçün Go istifadə edir:

  • Bir bucket-də bir neçə cütlük saxlamaq.
  • Çox sayda çəkilmə olarsa, bucketlərin sayını artırmaqla yenidən paylama (rehash) həyata keçirilir.

Bu, çəkilmələr olsa belə, elementlərə sürətli giriş imkanı verir.

Map istifadəsi nümunəsi:

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

Beləliklə, Go'da map, daxili optimizasiyalar ilə çəkilmə təsirini minimuma endirmək üçün effektiv quruluşdur.