ExpertiDict

Go · Intermediário · Português · Técnico

capacidade do slice

/ka.pa.si.ˈda.ʤi du slaɪs/substantivo

Quantos elementos o slice comporta no array subjacente antes de precisar realocar. Obtém-se com cap(), enquanto len() dá o tamanho atual.

Onde usar

'make([]T, 0, n)' reserva capacidade para evitar realocações no append. Quando ela estoura, o runtime aloca um array maior e copia os dados.

Em código

s := make([]int, 2, 5)
fmt.Println(len(s), cap(s))
s = append(s, 1, 2, 3)
fmt.Println(len(s), cap(s))
s = append(s, 4)
fmt.Println(len(s), cap(s) > 5)

Exemplos

Reserva a capacidade do slice antes do loop, a gente já sabe o tamanho.

Depois do append a capacidade do slice dobrou, o array foi realocado.

Cuidado

Não presuma a taxa de crescimento: ela é detalhe de implementação e já mudou entre versões.

Sinônimos

cap

Antônimos

tamanho do slice

Veja também

Todos os termos de Go