Junior — Middle
Hogyan van szervezve a tömb szerkezete a memóriában, és hogyan történik a hozzáférés az elemeihez?
sobes.tech MI
Válasz az MI-től
A Go nyelvben a tömbök egymás melletti memóriablokkok, ahol az elemek egymás után helyezkednek el. Minden elem fix méretet foglal el, ami a adattípustól függ.
A tömb egy eleméhez való hozzáférés a cím kiszámításával történik: a tömb alapcíme plusz egy eltolás, ami az elem indexe szorozva az elem méretével. Ez gyors hozzáférést biztosít bármely elemhez index szerint állandó időben.
Példa:
var arr [5]int = [5]int{10, 20, 30, 40, 50}
// az arr memóriában 5 egész szám egymás után van tárolva
fmt.Println(arr[2]) // Kiírja 30-at
Itt az arr[2] az index 2-vel rendelkező elem, melynek címe a tömb kezdőcímének plusz 2 * sizeof(int) lesz.