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:
- 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
- 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
-
Atribuição por índices — só possível se a slice já estiver inicializada e tiver comprimento suficiente.
-
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.