Comment supprimer un élément d'un slice en Golang ? Méthodes correctes et pièges
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 index d'un slice, mais je ne trouve pas de fonction intégrée pour cela.
Voici un exemple de mon code :
```go
package main
import "fmt"
func main() {
fruits := []string{"apple", "banana", "cherry", "date"}
// Je veux supprimer "banana" (index 1)
// Comment faire correctement ?
fmt.Println(fruits)
}
```
J'ai essayé d'assigner nil à l'élément, mais cela ne le supprime pas du slice, cela met seulement la valeur à zéro :
```go
fruits[1] = "" // Ne fonctionne pas comme une suppression
```
Ensuite, j'ai essayé de faire une sous-tranche (slice) sans l'élément souhaité, mais cela crée un nouveau slice, tandis que l'original reste :
```go
newFruits := append(fruits[:1], fruits[2:]...)
// Maintenant fruits = ["apple", "cherry", "date", "date"] — étrange, non ?
```
Le slice original a également changé, et un doublon du dernier élément est apparu ! Pourquoi cela se produit-il ? Comment supprimer correctement un élément d'un slice sans...
No answers yet.
Connectez-vous pour laisser une réponse
Blogs
Constructeurs en Go : meilleures pratiques 2025 dont les docs ne parlent pas
Intégration de C# avec d'autres langages : de P/Invoke à Python et JavaScript
Go en entretien : 9 pièges et comment les éviter
Dormir comme un Jedi : guide complet de sleep() en JavaScript 2025