Junior — Middle
Czy możesz wyjaśnić zasadę działania wycinków (slice) w języku programowania?
sobes.tech AI
Odpowiedź od AI
Kawa (slice) w Go to dynamiczny, zmienny rozmiarowo widok sekwencji elementów tego samego typu. Zawiera:
- wskaźnik na tablicę,
- długość (liczba elementów w kawałku),
- pojemność (maksymalna liczba elementów, które można pomieścić bez alokacji nowej pamięci).
Kawałki umożliwiają pracę z częściami tablic lub tworzenie nowych dynamicznych sekwencji bez kopiowania danych.
Przykład:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // kawałek elementów z indeksami 1,2,3: [2 3 4]
fmt.Println(s) // [2 3 4]
s = append(s, 6) // dodajemy element, jeśli pojemność na to pozwala, kawałek się rozszerza
Kawałki są przydatne, ponieważ pozwalają efektywnie pracować z danymi, nie kopiując tablic, i dynamicznie zmieniać rozmiar sekwencji.