Sobes.tech
Junior — Middle

Кадом намудҳои маълумот барои калидҳо дар структураи харита иҷозат дода мешаванд?

sobes.tech AI

Ҷавоб аз AI

Го-да, калитлар учун харита фақат қуйидаги турдаги маълумотлар турлари бўлиши мумкин, улар салыш операциясини (солиш мумкин) қўллаб-қувватлайди. Бу шундай маънони англатадики, калитлар:

  • Маънолар (bool)
  • Рақамлар (int, float, complex ва ҳоказо)
  • Сатрлар (string)
  • Ишорачилар
  • Интерфейслар, агар динамик тур салышни қўллаб-қувватласа
  • Тузилмалар, агар уларнинг барча майдонлари салыш мумкин бўлса

Делимлар, хариталар, функциялар ва бошқа салыш мумкин бўлмаган турлар калит сифатида қўлланмайди, чунки улар == операторини қўллаб-қувватламайди.

Масалан:

m := make(map[string]int)
m["key"] = 42

// Салыш мумкин бўлган майдонларга эга тузилма
type Point struct {
    X, Y int
}

m2 := make(map[Point]string)
m2[Point{1,2}] = "Бир нуқта"