Senior
Czym jest slice i czym różni się od tablicy?
sobes.tech AI
Odpowiedź od AI
W języku Go tablica (array) to struktura o stałej wielkości, zawierająca elementy tego samego typu. Rozmiar tablicy jest ustalany podczas deklaracji i nie może być zmieniany w trakcie działania programu.
Slice to dynamiczny, zmienny podzbiór tablicy. To struktura zawierająca wskaźnik na tablicę, długość i pojemność. Slices pozwalają na pracę z podzbiorami tablicy i automatyczne rozszerzanie się w razie potrzeby.
Główne różnice:
- Rozmiar: tablica ma stały rozmiar, slice jest dynamiczny.
- Przekazywanie: tablice są przekazywane przez wartość (kopiowane), slices przez referencję (wskaźnik na tablicę).
- Elastyczność: slice można rozszerzać za pomocą funkcji
append, tablica nie.
Przykład:
var arr [3]int = [3]int{1, 2, 3} // tablica o stałym rozmiarze
var s []int = arr[0:2] // slice, odwołujący się do części tablicy
s = append(s, 4) // slice się rozszerza, w razie potrzeby tworzony jest nowy tablica