Junior — Middle
Кадом намудҳои калидҳо барои истифода дар сохтори додаҳои Map иҷозат дода мешаванд?
sobes.tech AI
Ҷавоб аз AI
Дар Go, калидҳо барои сохтори додаҳои map бояд намудҳои муқоисашаванда (comparable) бошанд, яъне намудҳое, ки метавон дар амалҳои муқоиса == ва != истифода бурд.
Намудҳои иҷозатдодашудаи калидҳо дар бар мегиранд:
- Намудҳои асосӣ:
int,float64,string,boolва ғайра. - Пойнтерҳо
- Сохторҳо, агар ҳамаи майдонҳои онҳо муқоисашаванда бошанд
- Масивҳо, агар унсурҳои масив муқоисашаванда бошанд
Намудҳои иҷозатнашуда:
- Срезҳо (
slice) - Харитҳо (
map) - Функсияҳо
Масалан, истифодаи харита бо калиди навъи string:
m := make(map[string]int)
m["apple"] = 5
fmt.Println(m["apple"]) // 5
Агар кӯшиш кунед, ки срезро ҳамчун калид истифода баред, компилятор хато хоҳад дод.