Junior — Middle
Que consequências surgem ao usar o método append para um slice declarado sem parâmetros iniciais?
sobes.tech IA
Resposta da IA
Se uma slice em Go for declarada sem parâmetros iniciais, por exemplo var s []int, ela inicialmente é igual a nil e não aponta para um array alocado. Ao usar a função append, o Go automaticamente aloca um novo array e adiciona os elementos, retornando uma nova slice com a capacidade necessária.
Isso significa que append funciona de forma segura com slices nil, e você pode escrever:
var s []int // slice nil
s = append(s, 1, 2, 3) // agora s aponta para um novo array com os elementos
Consequências:
- Não é necessário inicializar a slice antes de usar
append. - Na primeira chamada de
append, a memória é alocada. - Se a slice for nil, então
len(s) == 0ecap(s) == 0.
Portanto, usar append com slices nil é uma prática padrão em Go que simplifica o trabalho com coleções dinâmicas.