Senior
Que va afficher le programme? func a() { x := []int{} x = append(x, 0) x = append(x, 1) x = append(x, 2) y := append(x, 3) z := append(x, 4) fmt.Println(y, z) } func main() { a() }
sobes.tech IA
Réponse de l'IA
Le programme affichera :
[0 1 2 3] [0 1 2 4]
Explication :
- Initialement,
xest une tranche vide. - On ajoute les éléments 0, 1, 2 à
x. y := append(x, 3)ajoute 3 à la tranchex. Si la capacité de la tranche est suffisante,yetxpointeront vers le même tableau sous-jacent, mais la longueur deysera plus grande.z := append(x, 4)ajoute également un élément, mais commeya déjà modifié le tableau, lors de l'ajout de 4 àz, un nouveau tableau est créé pour éviter d'écraser l'ancien.
Ainsi, y contient [0 1 2 3], et z contient [0 1 2 4].
Exemple pour plus de clarté :
func a() {
x := []int{}
x = append(x, 0)
x = append(x, 1)
x = append(x, 2)
y := append(x, 3)
z := append(x, 4)
fmt.Println(y, z)
}
func main() {
a()
}