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