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.