Sobes.tech
Middle

Кадом намудҳои маълумотҳоро метавон ҳамчун калид истифода бурд?

sobes.tech AI

Ҷавоб аз AI

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

Намудҳое, ки метавонанд ҳамчун калид истифода шаванд:

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

Намудҳое, ки наметавонанд ҳамчун калид истифода шаванд:

  • Қисмҳо (slice)
  • Харитаҳо (map)
  • Функсияҳо

Ин ба он вобаста аст, ки ин намудҳо муқоиса бо == -ро дастгирӣ намекунанд.

Масалан:

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

// Сохтор бо майдонҳои муқоисашаванда
 type Point struct {
     X, Y int
 }

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

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