Sobes.tech
Junior — Middle

Quelles actions sont autorisées lors de l'utilisation d'une tranche en Go si elle n'a pas été explicitement initialisée?

sobes.tech IA

Réponse de l'IA

En Go, si une tranche (slice) n'a pas été explicitement initialisée (c'est-à-dire qu'elle a la valeur nil), on peut effectuer les actions suivantes :

  • Vérifier si elle est nil (par exemple, if slice == nil), ce qui est utile pour déterminer si la tranche a été initialisée.
  • Obtenir la longueur et la capacité avec len(slice) et cap(slice). Pour une tranche nil, la longueur et la capacité sont 0.
  • Utiliser l'opérateur append pour ajouter des éléments. Cela créera automatiquement une nouvelle tranche avec de la mémoire allouée si la tranche d'origine est nil.

Cependant, on ne peut pas accéder aux éléments de la tranche par index si elle est nil ou vide, car cela provoquerait une panique.

Exemple :

var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // maintenant s est initialisé et contient [1]