Sobes.tech
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.