Junior — Middle
Jak odróżnić sposoby tworzenia zakresu w Go za pomocą var, make i przypisań według indeksów lub przez append?
sobes.tech AI
Odpowiedź od AI
W języku Go, slices można tworzyć na różne sposoby, które różnią się pod względem inicjalizacji i przydziału pamięci:
- Deklaracja za pomocą
var— tworzy nil-slice, która nie wskazuje na żaden tablica i ma długość oraz pojemność 0.
var s []int // nil-slice
- Tworzenie slice za pomocą
make— przydziela tablicę o określonej długości i pojemności, zwraca slice wskazujący na ten tablica.
s := make([]int, 5) // slice długości 5, wypełniony zerami
-
Przypisanie przez indeksy — możliwe tylko jeśli slice jest już zainicjalizowany i ma wystarczającą długość.
-
Dodawanie elementów przez
append— dodaje elementy do slice, w razie potrzeby zwiększa pojemność i przydziela nowy tablica.
s = append(s, 10) // dodaje element 10 do slice
W ten sposób, var tworzy pusty nil-slice, make — slice z przydzieloną pamięcią, przypisanie przez indeksy wymaga istniejącej długości, a append dynamicznie rozszerza slice.