Sobes.tech
Junior — Middle

Quelle quantité d'éléments et quelle capacité aura une tranche après l'ajout d'un élément si elle n'a pas été initialisée au départ?

sobes.tech IA

Réponse de l'IA

Si une tranche en Go n’est pas initialisée (c’est-à-dire qu’elle est égale à nil), et que vous y ajoutez un élément avec la fonction append, alors :

  • La quantité d’éléments (len) après l’ajout sera 1.
  • La capacité (cap) dépendra de l’implémentation, mais commence généralement par une petite capacité, par exemple 1 ou 2.

Exemple :

var s []int // tranche nil
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // généralement >= 1

Ainsi, lors de l’ajout du premier élément à une tranche nil en Go, de la mémoire est automatiquement allouée pour une nouvelle tranche avec une capacité suffisante pour stocker cet élément.