Middle+
Tâche : Que va afficher le code ? ```go package main import "fmt" func main() { a := []int{1, 2, 3, 4, 5} b := a[:2] b = append(b, 100) fmt.Println(a, b) } ```
sobes.tech IA
Réponse de l'IA
Code:
package main
import "fmt"
func main() {
a := []int{1, 2, 3, 4, 5}
b := a[:2] // b fait référence aux deux premiers éléments de a : [1, 2]
b = append(b, 100) // ajoutons 100 à la tranche b
fmt.Println(a, b)
}
Analyse:
- Initialement,
a= [1, 2, 3, 4, 5] b := a[:2]— la tranchebcontient [1, 2], et sa capacité est 5 (de 0 à la fin dea)append(b, 100)ajoute l’élément 100 à la trancheb. Comme la capacité debpermet de s’étendre sans allocation de nouvelle mémoire, l’élément 100 est écrit dansa[2], modifiant le tableau originala.
Après append:
adevient [1, 2, 100, 4, 5]bdevient [1, 2, 100]
Sortie:
[1 2 100 4 5] [1 2 100]
Autrement dit, l’élément a[2] est passé de 3 à 100, car b et a partagent un tableau sous-jacent.