Sobes.tech
Junior — Middle

Qual a quantidade de elementos e qual será a capacidade de um slice após adicionar um elemento, se ele inicialmente não foi inicializado?

sobes.tech IA

Resposta da IA

Se uma slice em Go não estiver inicializada inicialmente (ou seja, for igual a nil), e você adicionar um elemento usando a função append, então:

  • A quantidade de elementos (len) após a adição será 1.
  • A capacidade (cap) dependerá da implementação, mas geralmente começa com uma capacidade pequena, por exemplo, 1 ou 2.

Exemplo:

var s []int // slice nil
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // geralmente >= 1

Assim, ao adicionar o primeiro elemento a um slice nil em Go, a memória é automaticamente alocada para um novo slice com uma capacidade suficiente para armazenar esse elemento.