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