Middle+
package main import "fmt" func subis(is []int) []int { return append(is, 5) } func main() { is := []int{1, 2, 3, 4} subis(is[2:3]) fmt.Println(is) }
sobes.tech IA
Réponse de l'IA
Dans ce code, voici ce qui se passe :
is := []int{1, 2, 3, 4}
subis(is[2:3])
fmt.Println(is)
is[2:3] est une tranche contenant un seul élément : 3.
La fonction subis prend une tranche is []int et retourne une nouvelle tranche obtenue en ajoutant le nombre 5 à la tranche d'origine via append.
Cependant, dans main, le résultat de l'appel à subis n'est pas réassigné, donc la tranche d'origine is ne change pas.
La sortie sera :
[1 2 3 4]
Si nous faisions une assignation, par exemple :
is = subis(is[2:3])
alors is deviendrait une tranche [3 5].
Ainsi, dans le code actuel, is ne change pas parce que le résultat de append n'est pas sauvegardé.