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,
No answers yet.
Connectez-vous pour laisser une réponse
Blogs
Gestion des erreurs en Rust : try/catch et au-delà