Sobes.tech
Junior — Middle

Da li je moguća situacija u kojoj promenljiva len prikazuje manju dužinu od stvarne veličine niza ili isečka?

sobes.tech АИ

Одговор од АИ

U Go, promenljiva len za niz ili odsečak uvek odražava trenutnu dužinu, koju vraća ugrađena funkcija len().

  • Za niz, len je uvek jednak veličini niza i ne menja se.
  • Za odsečak, len prikazuje broj elemenata u odsečku, koji može biti manji ili jednak kapacitetu odsečka.

Situacija kada je len manji od stvarne veličine niza je nemoguća, jer je len za niz fiksiran i jednak veličini.

Za odsečak, dužina može biti manja od kapaciteta, ali ne veća od stvarnog broja dostupnih elemenata po indeksu.

Primer:

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

Ovde je dužina odsečka 2, iako je kapacitet 4. Ali dužina ne može biti veća od stvarne veličine odsečka.