Junior — Middle
Meg tudná magyarázni a szeletek (slice) működési elvét a programozási nyelvben?
sobes.tech MI
Válasz az MI-től
A Go nyírása (slice) egy dinamikus, változtatható méretű nézet ugyanazon típusú elemek sorozatáról. Tartalmaz:
- egy mutatót egy tömbre,
- a hosszúságot (az elemek száma a nyírásban),
- a kapacitást (a maximális elem számát, amit anélkül lehet megtölteni, hogy új memóriát foglalnánk).
A nyírások lehetővé teszik tömbök részeinek kezelését vagy új dinamikus sorozatok létrehozását adatmásolás nélkül.
Példa:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // az indexek 1,2,3 elemeinek nyírása: [2 3 4]
fmt.Println(s) // [2 3 4]
s = append(s, 6) // hozzáadunk egy elemet, ha a kapacitás lehetővé teszi, a nyírás bővül
A nyírások hatékonyan kezelik az adatokat, anélkül, hogy másolnák a tömböket, és dinamikusan változtathatják a sorozat méretét.