Sobes.tech
Junior — Middle

Ako je organizovaná štruktúra poľa v pamäti a ako sa k jej prvkom pristupuje?

sobes.tech AI

Odpoveď od AI

V jazyku Go sú polia po sebe idúce bloky pamäte, kde sú prvky uložené jeden za druhým. Každý prvok zaberá pevne stanovenú veľkosť, ktorá závisí od typu dát.

Prístup k prvku poľa sa vykonáva výpočtom adresy: základná adresa poľa plus posun, ktorý je rovný indexu prvku násobenému veľkosťou prvku. To zabezpečuje rýchly prístup k akémukoľvek prvku podľa indexu v konštantnom čase.

Príklad:

var arr [5]int = [5]int{10, 20, 30, 40, 50}
// arr je uložený v pamäti ako sekvencia 5 celých čísel
fmt.Println(arr[2]) // Vypíše 30

Tu je arr[2] prvok s indexom 2, ktorého adresa sa počíta ako začiatok poľa plus 2 * sizeof(int).