Junior — Middle
Vai ir iespējama situācija, kad mainīgais len rāda mazāku garumu nekā faktiskā masīva vai sagrieziena lielums?
sobes.tech AI
Atbilde no AI
Go valodā mainīgais len masīvam vai šķēlumam vienmēr atspoguļo pašreizējo garumu, ko atgriež iebūvētā funkcija len().
- Masīvam,
lenvienmēr ir vienāds ar masīva izmēru un nemainās. - Šķēlumam,
lenrāda elementu skaitu šķēlumā, kas var būt mazāks vai vienāds ar šķēluma kapacitāti.
Situācija, kad len ir mazāks par faktiskā masīva izmēru, ir neiespējama, jo len masīvam ir fiksēts un vienāds ar izmēru.
Šķēlumam, garums var būt mazāks par kapacitāti, bet nevar būt lielāks par faktisko pieejamo elementu skaitu pēc indeksa.
Piemērs:
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
Šeit, šķēluma garums ir 2, lai gan kapacitāte ir 4. Bet garums nevar būt lielāks par faktisko šķēluma izmēru.