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).