Sobes.tech
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é.