Junior — Middle
È possibile una situazione in cui la variabile len mostra una lunghezza inferiore alla dimensione reale dell'array o del segmento?
sobes.tech AI
Risposta dell'AI
In Go, la variabile len per un array o slice riflette sempre la lunghezza attuale, restituita dalla funzione incorporata len().
- Per un array,
lenè sempre uguale alla dimensione dell'array e non cambia. - Per uno slice,
lenmostra il numero di elementi nello slice, che può essere inferiore o uguale alla capacità dello slice.
La situazione in cui len è inferiore alla dimensione reale dell'array è impossibile, poiché len per un array è fisso e uguale alla dimensione.
Per uno slice, la lunghezza può essere inferiore alla capacità, ma non superiore al numero reale di elementi accessibili tramite indice.
Esempio:
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
Qui, la lunghezza dello slice è 2, anche se la capacità è 4. Ma la lunghezza non può essere superiore alla dimensione reale dello slice.