Junior — Middle
Чӣ гуна сохтори массив дар хотира ташкил шудааст ва чӣ гуна дастрасӣ ба унсурҳои он сурат мегирад?
sobes.tech AI
Ҷавоб аз AI
Дар Go, массивҳо блокҳои пайдарпайи хотира мебошанд, ки дар онҳо унсурҳо як ба як ҷойгир шудаанд. Ҳар як унсур андозаи муайян дорад, ки аз навъи додаҳо вобаста аст.
Дастрасӣ ба унсури массив тавассути ҳисоб кардани суроғаи он сурат мегирад: суроғаи асосии массив плюс офсет, ки баробар аст ба индексии унсур дар муоширати бо андозаи унсур. Ин имкон медиҳад, ки ба ҳар унсур дар вақти доимӣ бо суроғаи индексӣ суръатнок дастрасӣ пайдо шавад.
Масалан:
var arr [5]int = [5]int{10, 20, 30, 40, 50}
// arr дар хотира ҳамчун пайдарпайии 5 адади пурра нигоҳ дошта мешавад
fmt.Println(arr[2]) // 30-ро мебарорад
Ин ҷо, arr[2] унсури бо индекс 2 аст, ки суроғаи он ҳамчун суроғаи оғозии массив плюс 2 * sizeof(int) ҳисоб карда мешавад.