Sobes.tech
Junior — Middle

Czy możesz wyjaśnić, czym jest wycinek (slice) w programowaniu i jak on działa?

sobes.tech AI

Odpowiedź od AI

Kawałek (slice) w Go to dynamiczny, zmienny fragment tablicy. Reprezentuje strukturę, która zawiera:

  • wskaźnik na pierwszy element tablicy,
  • długość (liczbę elementów w kawałku),
  • pojemność (maksymalną liczbę elementów, które może zawierać kawałek bez ponownego przydziału).

Kawałki pozwalają na pracę z sekwencjami elementów bez konieczności kopiowania danych.

Przykład tworzenia i używania kawałka:

arr := [5]int{1, 2, 3, 4, 5}
slice := arr[1:4] // kawałek elementów z indeksami 1,2,3
fmt.Println(slice) // [2 3 4]

slice = append(slice, 6) // dodajemy element, w razie potrzeby przydzielana jest nowa pamięć
fmt.Println(slice) // [2 3 4 6]

Kawałki są wygodne, ponieważ można tworzyć nowe kawałki z istniejących, zmieniać ich rozmiar i przekazywać je do funkcji bez kopiowania całej tablicy.