Junior — Middle
Qual é a diferença entre os parâmetros de comprimento e capacidade de um array na programação?
sobes.tech IA
Resposta da IA
No Go, os arrays têm um comprimento fixo definido na sua criação e que não pode ser alterado. O parâmetro comprimento (length) do array é o número de elementos que ele contém, e é fixo.
A capacidade (capacity) é o número de elementos que um array ou slice pode conter sem alocar memória adicional. Para arrays, a capacidade é igual ao comprimento, pois são fixos. Para slices, a capacidade pode ser maior que o comprimento, pois são estruturas dinâmicas que podem expandir-se.
Exemplo:
arr := [5]int{1, 2, 3, 4, 5} // comprimento e capacidade iguais a 5
slice := arr[1:3] // comprimento do slice 2 (elementos com índices 1 e 2)
// capacidade do slice 4 (do índice 1 até o final do array)
fmt.Println(len(slice)) // 2
fmt.Println(cap(slice)) // 4
Assim, o comprimento é o tamanho atual (número de elementos), e a capacidade é o tamanho máximo sem redistribuição de memória.