Junior — Middle
Ile elementów i jaką pojemność będzie miała tablica po dodaniu jednego elementu, jeśli początkowo nie była zainicjalizowana?
sobes.tech AI
Odpowiedź od AI
Jeśli slice w Go początkowo nie jest zainicjalizowany (czyli jest równy nil), i dodajesz do niego element za pomocą funkcji append, to:
- Liczba elementów (len) po dodaniu będzie wynosić 1.
- Pojemność (cap) będzie zależeć od implementacji, ale zazwyczaj zaczyna się od małej pojemności, na przykład 1 lub 2.
Przykład:
var s []int // nil-slice
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // zazwyczaj >= 1
W ten sposób, przy dodaniu pierwszego elementu do nil-slice w Go, automatycznie przydzielana jest pamięć dla nowego slice’a z pojemnością wystarczającą do przechowania tego elementu.