Comment supprimer un élément d'un slice en Golang : les bonnes méthodes
Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai rencontré un problème en travaillant avec les slices. Je dois supprimer un élément par son index, mais je ne trouve pas de fonction intégrée pour le faire. En Python, j'avais l'habitude d'utiliser `list.pop()` ou `del list[i]`, mais en Go, cela n'existe pas.
Voici ce que j'ai essayé :
```go
package main
import "fmt"
func main() {
fruits := []string{"apple", "banana", "cherry", "date"}
// Je veux supprimer "banana" (index 1)
// J'ai essayé d'assigner nil - ça ne marche pas
// fruits[1] = nil // erreur de compilation
// J'ai essayé de faire un slice, mais le résultat est bancal
result := append(fruits[:1], fruits[2:]...)
fmt.Println(result) // affiche : [apple cherry date]
fmt.Println(fruits) // affiche : [apple cherry date date] - bug !
// Pourquoi le slice original a changé ? Et comment supprimer correctement ?
}
```
J'ai remarqué qu'après `append`, le slice original `fruits` change aussi, même si j'ai assigné le résultat à une nouvelle variable. C'est très étrange. Expliquez-moi, s'il vous plaît.