Sobes.tech
Junior — Middle

Como distinguir as formas de criar uma fatia em Go usando var, make e atribuição por índices ou através de append?

sobes.tech IA

Resposta da IA

Em Go, as slices podem ser criadas de várias maneiras, que diferem na inicialização e alocação de memória:

  1. Declaração com var — cria uma slice nil, que não aponta para nenhum array e tem comprimento e capacidade 0.
var s []int // slice nil
  1. Criação de uma slice usando make — aloca um array de comprimento e capacidade especificados, e retorna uma slice apontando para esse array.
s := make([]int, 5) // slice de comprimento 5, preenchida com zeros
  1. Atribuição por índices — só possível se a slice já estiver inicializada e tiver comprimento suficiente.

  2. Adição de elementos com append — adiciona elementos à slice, e se necessário, aumenta a capacidade e aloca um novo array.

s = append(s, 10) // adiciona o elemento 10 à slice

Assim, var cria uma slice nil vazia, make cria uma slice com memória alocada, a atribuição por índices requer uma extensão existente, e append expande a slice dinamicamente.