Sobes.tech
Junior — Middle

Фарқи байни истифодаи харита ва слайс дар Go чист ва дар кадом ҳолатҳо истифодаи ҳар яке аз онҳо беҳтар аст?

sobes.tech AI

Ҷавоб аз AI

Дар Го, map ва slice барои мақсадҳои гуногун хизмат мекунанд:

  • map — массиви ҳамсоягӣ, сохтор барои нигоҳ доштани ҷуфтҳои калид-арзиш бо дастрасии зуд тавассути калид. Калидҳо беназир мебошанд.
  • slice — массиви динамикӣ, ҷамъоварии мураттабшудаи унсурҳо, дастрасӣ тавассути индекс.

Вақте истифода бурдан:

  • Агар ба шумо лозим аст, ки унсурҳоро ба зудӣ тавассути калиди беназир пайдо кунед, масалан, корбаронро тавассути ID нигоҳ доред.
  • Агар тартиби унсурҳо муҳим бошад ё шумо бояд маҷмӯаи унсурҳоро бе калид нигоҳ доред, масалан, рӯйхати вазифаҳо.

Масалан:

// map барои нигоҳ доштани холҳои донишҷӯён ба номи онҳо
grades := map[string]int{"Alice": 90, "Bob": 85}

// slice барои нигоҳ доштани рӯйхати номҳо
names := []string{"Alice", "Bob", "Charlie"}

Интихоб вобаста ба вазифа аст: барои ҷустуҷӯ тавассути калид — map, барои рӯйхати мураттаб — slice.