Sobes.tech
Junior — Middle

Kas on võimalik olukord, kus muutuja len näitab väiksemat pikkust kui massiivi või lõigu tegelik suurus?

sobes.tech AI

Vastus AI-lt

Go keeles peegeldab muutujat len massiivi või viiluga alati praegust pikkust, mille tagastab sisseehitatud funktsioon len().

  • Massiivi puhul on len alati võrdne massiivi suurusega ja see ei muutu.
  • Viilu puhul näitab len viilu elementide arvu, mis võib olla väiksem või võrdne viilu mahutavusega.

Situatsioon, kus len on väiksem kui tegelik massiivi suurus, on võimatu, kuna len massiivi puhul on fikseeritud ja võrdne suurusega.

Viilu puhul võib pikkus olla väiksem mahutavusest, kuid mitte suurem kui tegelik elementide arv, mis on indeksiga kättesaadavad.

Näide:

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

Siin on viilu pikkus 2, kuigi mahutavus on 4. Kuid pikkus ei saa olla suurem kui tegelik viilu suurus.