Junior — Middle
Milliseid andmeid salvestatakse viitajas lõigu struktuuri sees?
sobes.tech AI
Vastus AI-lt
Go keeles lõigu (slice) struktuuris salvestatakse kolm peamist välja:
-
Indikaator (pointer) — viitab massiivi esimesele elemendile, millele lõik viitab. See ei pea tingimata olema kogu massiivi algus, vaid lõigu algus massiivi sees.
-
Pikkus (length) — elementide arv, mis on lõigu kaudu kättesaadavad.
-
Võimsus (capacity) — maksimaalne elementide arv, mida saab mahutada, alustades indikaatorist, ilma uut mälu eraldamata.
Lihtsustatud lõigu struktuuri näide:
type SliceHeader struct {
Data uintptr // viitab esimesele elemendile
Len int // lõigu pikkus
Cap int // lõigu võimsus
}
Sellisel viisil näitab lõigu sees olev indikaator lõigu esimest elementi põhimassiivis, võimaldades tõhusat töötlemist alam-massiividega ilma andmeid kopeerimata.