Junior — Middle
Comment distinguer les méthodes de création de tranches en Go avec var, make et assignation par index ou via append?
sobes.tech IA
Réponse de l'IA
En Go, les slices peuvent être créées de différentes manières, qui diffèrent par l'initialisation et l'allocation de mémoire:
- Déclaration avec
var— crée une slice nil, qui ne pointe pas vers un tableau et a une longueur et une capacité de 0.
var s []int // slice nil
- Création d'une slice via
make— alloue un tableau de longueur et capacité spécifiées, et retourne une slice pointant vers ce tableau.
s := make([]int, 5) // slice de longueur 5, rempli de zéros
-
Assignation par indices — seulement possible si la slice est déjà initialisée et a une longueur suffisante.
-
Ajout d'éléments avec
append— ajoute des éléments à la slice, et si nécessaire, augmente la capacité et alloue un nouveau tableau.
s = append(s, 10) // ajoute l'élément 10 à la slice
Ainsi, var crée une slice nil vide, make une slice avec mémoire allouée, l'assignation par indices nécessite une longueur existante, et append étend la slice dynamiquement.