Junior — Middle
Dizideki dizinin bellek yapısı nasıl organize edilmiştir ve öğelerine nasıl erişilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go'da diziler, ardışık bellek bloklarıdır ve öğeler ardışık olarak saklanır. Her öğe, veri türüne bağlı olarak sabit bir boyut kaplar.
Dizi öğesine erişim, adres hesaplamasıyla gerçekleşir: dizinin temel adresi artı, öğenin indeksi ile çarpılan öğe boyutunun toplamı. Bu, herhangi bir öğeye indeksle sabit zamanda hızlı erişim sağlar.
Örnek:
var arr [5]int = [5]int{10, 20, 30, 40, 50}
// arr, bellekte 5 tam sayının ardışık dizisi olarak saklanır
fmt.Println(arr[2]) // 30'u yazdırır
Burada, arr[2] indeksi 2 olan öğedir ve adresi, dizinin başlangıç adresi artı 2 * sizeof(int) olarak hesaplanır.