Junior — Middle
Milyen adatok tárolódnak a szelet szerkezetén belüli mutatóban?
sobes.tech MI
Válasz az MI-től
A Go nyelvben egy szelet (slice) szerkezetében három fő mező van:
-
Mutató (pointer) — a tömb első elemének címe, amelyre a szelet hivatkozik. Ez nem feltétlenül a teljes tömb kezdete, hanem a szelet kezdete a tömbön belül.
-
Hossz (length) — a szelet által elérhető elemek száma.
-
Kapacitás (capacity) — a maximális elem szám, amit a mutatótól kezdve el lehet helyezni anélkül, hogy új memóriát foglalnánk.
Egyszerűsített szelet struktúra példája:
type SliceHeader struct {
Data uintptr // mutató az első elemre
Len int // szelet hossza
Cap int // szelet kapacitása
}
Így a szeletben lévő mutató az első elemre mutat a fő tömbben, ami lehetővé teszi hatékony munkát almintákkal anélkül, hogy adatokat másolnánk.