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,
lenmostra 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.