Junior — Middle
Czy możliwa jest sytuacja, w której zmienna len pokazuje mniejszą długość niż rzeczywisty rozmiar tablicy lub wycinka?
sobes.tech AI
Odpowiedź od AI
W Go zmienna len dla tablicy lub wycinka zawsze odzwierciedla aktualną długość, którą zwraca wbudowana funkcja len().
- Dla tablicy,
lenjest zawsze równe rozmiarowi tablicy i się nie zmienia. - Dla wycinka,
lenpokazuje liczbę elementów w wycinku, która może być mniejsza lub równa pojemności wycinka.
Sytuacja, gdy len jest mniejsze od rzeczywistego rozmiaru tablicy, jest niemożliwa, ponieważ len dla tablicy jest stałe i równe rozmiarowi.
Dla wycinka, długość może być mniejsza od pojemności, ale nie większa od rzeczywistej liczby dostępnych elementów według indeksu.
Przykład:
arr := [5]int{1,2,3,4,5}
fmt.Println(len(arr)) // 5
slice := arr[1:3]
fmt.Println(len(slice)) // 2
fmt.Println(cap(slice)) // 4
Tutaj długość wycinka to 2, choć pojemność to 4. Ale długość nie może być większa od rzeczywistego rozmiaru wycinka.