Sobes.tech
Junior — Middle

É possível uma situação em que a variável len mostre um comprimento menor do que o tamanho real do array ou fatia?

sobes.tech IA

Resposta da IA

Em Go, a variável len para um array ou slice sempre reflete o comprimento atual, que é retornado pela função incorporada len().

  • Para um array, len é sempre igual ao tamanho do array e não muda.
  • Para um slice, len mostra o número de elementos no slice, que pode ser menor ou igual à capacidade do slice.

A situação em que len é menor que o tamanho real do array é impossível, pois len para um array é fixo e igual ao tamanho.

Para um slice, o comprimento pode ser menor que a capacidade, mas não maior que o número real de elementos acessíveis por índice.

Exemplo:

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

Aqui, o comprimento do slice é 2, embora a capacidade seja 4. Mas o comprimento não pode ser maior que o tamanho real do slice.