Sobes.tech
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.