ExpertiDict

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

backing array

/ˈbækɪŋ əˈɹeɪ/substantivo

Array real que guarda os elementos por trás de um slice. Vários slices podem apontar para o mesmo, e por isso mudanças vazam entre eles.

Onde usar

Surge em bugs do tipo 'alterei b e o a mudou': fatiar não copia. Para isolar os dados, usa-se copy ou slices.Clone.

Em código

a := []int{1, 2, 3, 4}
b := a[:2]
b[0] = 99
fmt.Println(a[0]) // 99
c := slices.Clone(a)
c[0] = 1
fmt.Println(a[0]) // 99

Exemplos

Both slices share the same backing array.

Os dois slices compartilham o mesmo backing array.

Clone the slice so it gets its own backing array.

Clone o slice para ele ter o seu próprio backing array.

Cuidado

Um slice pequeno retido pode manter vivo um array enorme na memória; copie o trecho necessário se quiser liberar o resto.

Sinônimos

array subjacente

Veja também

Todos os termos de Go