Sobes.tech
Junior — Middle

Dans quelles situations le langage de programmation augmente-t-il automatiquement la taille du tableau dynamique (slice) ?

sobes.tech IA

Réponse de l'IA

En Go, une tranche (slice) est une structure qui contient un pointeur vers un tableau, une longueur et une capacité. La taille de la tranche augmente automatiquement lorsque vous ajoutez des éléments avec la fonction append, et la longueur actuelle de la tranche atteint sa capacité.

À ce moment-là, une nouvelle array avec une capacité accrue (généralement le double de la précédente) est allouée, les anciens éléments sont copiés dans le nouvel array, et le pointeur de la tranche est mis à jour vers ce nouvel array. Cela permet à la tranche de croître dynamiquement à mesure que des éléments sont ajoutés.

Exemple:

s := make([]int, 0, 2) // longueur 0, capacité 2
s = append(s, 1)        // longueur 1, capacité 2
s = append(s, 2)        // longueur 2, capacité 2
s = append(s, 3)        // longueur 3, capacité augmentée, par exemple, à 4

Ainsi, la taille augmente automatiquement lors de l’ajout d’éléments lorsque la longueur atteint la capacité du slice.