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