Junior — Middle
O que acontecerá ao comprimento e à capacidade do slice se adicionar 10 elementos a ele, quando inicialmente está vazio?
sobes.tech IA
Resposta da IA
Se tiver um slice vazio em Go (comprimento e capacidade iguais a 0), e adicionar 10 elementos usando a função append, então:
- O comprimento do slice será 10 — a quantidade de elementos que você adicionou.
- A capacidade do slice será aumentada automaticamente, geralmente com uma margem, para evitar realocações frequentes de memória. A capacidade exata depende da implementação, mas muitas vezes será 16 ou mais, para acomodar novos elementos e ter margem para futuras adições.
Exemplo:
var s []int // slice vazio
s = append(s, make([]int, 10)...) // adiciona 10 elementos
fmt.Println(len(s)) // 10
fmt.Println(cap(s)) // >=10, geralmente 16 ou 20
Assim, a capacidade aumenta dinamicamente para gerenciar a memória de forma eficiente à medida que o slice cresce.