Sobes.tech
Junior — Middle

Кадом намудҳои додаҳо барои истифода ҳамчун калидҳо дар сохтори Map мувофиқанд?

sobes.tech AI

Ҷавоб аз AI

Дар Go, калидҳо дар сохтори map метавонанд танҳо аз намудҳое бошанд, ки операсияи муқоиса кардани баробариро (== ва !=) дастгирӣ мекунанд. Ин муҳим аст, зеро барои ҷустуҷӯи арзиш бо калид, лозим аст, ки калидҳоро муқоиса кунед.

Намудҳои мувофиқ барои калидҳо:

  • Намудҳои оддӣ: int, float64, string, bool ва ғайра.
  • Ишоракунандагон
  • Сохторҳо, агар ҳамаи майдонҳои онҳо муқоисашаванда бошанд
  • Масивҳо, агар унсурҳои онҳо муқоисашаванда бошанд

Намудҳои истифодаи ғайриқонунӣ:

  • Слайсҳо (slice)
  • Харитаҳо (map)
  • Функсияҳо

Маслиҳат барои истифода:

m := make(map[string]int)
m["apple"] = 5
m["banana"] = 3

fmt.Println(m["apple"]) // 5

Агар кӯшиш кунед, ки слайсро ҳамчун калид истифода баред, компилятор хато медиҳад.