Sobes.tech
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, len jest zawsze równe rozmiarowi tablicy i się nie zmienia.
  • Dla wycinka, len pokazuje 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.