Avatar ·

Pourquoi copy() ne copie-t-il pas une slice en Go ? Ou est-ce que je fais quelque chose de mal ?

Bonjour à tous ! J'ai commencé à étudier Go récemment et j'ai rencontré un problème incompréhensible en travaillant avec les slices. J'avais besoin de dupliquer une slice dans une autre, afin de pouvoir modifier la copie indépendamment de l'original. J'ai lu qu'il existe une fonction intégrée `copy()` pour cela. J'ai écrit ce code : ```go package main import "fmt" func main() { original := []int{1, 2, 3, 4, 5} var copySlice []int copy(copySlice, original) fmt.Println("original:", original) fmt.Println("copy:", copySlice) } ``` Mais en sortie, j'ai obtenu une slice vide ! `copySlice` est resté `[]`. Je m'attendais à ce qu'après `copy()`, `copySlice` contienne les mêmes éléments que `original`. Ensuite, j'ai essayé une autre variante — j'ai d'abord déclaré une slice avec une longueur, mais sans valeur : ```go copySlice2 := make([]int,