Sobes.tech
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, len mostra 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.