Junior — Middle
Como é que a reserva de memória para um slice é feita na linguagem de programação?
sobes.tech IA
Resposta da IA
Na linguagem Go, um slice é uma estrutura que contém um ponteiro para um array, um comprimento e uma capacidade. Quando um slice é criado, a memória para os elementos é reservada no array ao qual ele aponta.
Quando um slice é criado usando a função make, por exemplo make([]int, length, capacity), um array com a capacidade especificada é alocado. Se ao adicionar elementos a capacidade for excedida, o Go aloca automaticamente um novo array de maior tamanho, copia os dados e atualiza o ponteiro do slice.
Exemplo:
s := make([]int, 0, 5) // slice com comprimento 0 e capacidade 5
s = append(s, 1, 2, 3) // adiciona elementos
Dessa forma, a reserva de memória ocorre antecipadamente para a capacidade definida, o que aumenta a eficiência ao adicionar elementos.