Sobes.tech
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) == 0 e cap(s) == 0.

Portanto, usar append com slices nil é uma prática padrão em Go que simplifica o trabalho com coleções dinâmicas.