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.