Junior — Middle
Este posibil ca variabila len să afișeze o lungime mai mică decât dimensiunea reală a array-ului sau a segmentului?
sobes.tech AI
Răspuns de la AI
În Go, variabila len pentru un array sau slice reflectă întotdeauna lungimea actuală, care este returnată de funcția încorporată len().
- Pentru un array,
leneste întotdeauna egal cu dimensiunea array-ului și nu se schimbă. - Pentru un slice,
lenarată numărul de elemente din slice, care poate fi mai mic sau egal cu capacitatea slice-ului.
Situația în care len este mai mic decât dimensiunea reală a array-ului este imposibilă, deoarece len pentru un array este fix și egal cu dimensiunea.
Pentru un slice, lungimea poate fi mai mică decât capacitatea, dar nu mai mare decât numărul real de elemente accesibile prin index.
Exemplu:
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
Aici, lungimea slice-ului este 2, deși capacitatea este 4. Dar lungimea nu poate fi mai mare decât dimensiunea reală a slice-ului.