Junior — Middle
Pode explicar os mecanismos internos da função Make?
sobes.tech IA
Resposta da IA
No Go, a função make é usada para criar e inicializar slices, mapas e canais. Ela aloca memória e devolve um objeto inicializado do tipo necessário.
Internamente, make:
- Aloca memória para a estrutura de dados e buffers internos.
- Inicializa os campos de serviço (por exemplo, o comprimento e a capacidade do slice).
- Para slices, aloca um array com a capacidade especificada, retornando um slice com comprimento e capacidade.
- Para mapas, cria uma tabela hash com tamanho inicial.
- Para canais, cria um buffer com a capacidade indicada.
Exemplo:
s := make([]int, 5, 10) // slice com comprimento 5, capacidade 10
m := make(map[string]int, 10) // mapa com capacidade inicial de 10
ch := make(chan int, 5) // canal com buffer de 5 elementos
Assim, make é um mecanismo embutido para criar e inicializar tipos de dados complexos, diferente de new, que simplesmente aloca memória sem inicialização.