Sobes.tech
Junior — Middle

Quelles sont les conséquences de l'utilisation de la méthode append pour une tranche déclarée sans paramètres initiaux?

sobes.tech IA

Réponse de l'IA

Si une tranche en Go est déclarée sans paramètres initiaux, par exemple var s []int, elle est initialement égale à nil et ne pointe pas vers un tableau alloué. Lors de l'utilisation de la fonction append, Go alloue automatiquement un nouveau tableau et ajoute les éléments, renvoyant une nouvelle tranche avec la capacité nécessaire.

Cela signifie que append fonctionne en toute sécurité avec des slices nil, et vous pouvez écrire :

var s []int // tranche nil
s = append(s, 1, 2, 3) // maintenant s pointe vers un nouveau tableau avec les éléments

Conséquences :

  • Il n'est pas nécessaire d'initialiser la tranche avant d'utiliser append.
  • Lors du premier appel à append, de la mémoire est allouée.
  • Si la tranche est nil, alors len(s) == 0 et cap(s) == 0.

Ainsi, utiliser append avec des slices nil est une pratique standard en Go qui simplifie la gestion des collections dynamiques.