Avatar ·

Comment nettoyer un slice en Go ? Toutes les méthodes et pièges à éviter

Bonjour, collègues ! Je viens de commencer à apprendre Go et j'ai rencontré un problème qui, à première vue, devrait être trivial, mais je n'arrive pas à trouver de solution claire. J'ai un slice que j'utilise activement dans une boucle pour accumuler des données. Après chaque itération, je dois vider complètement ce slice pour recommencer à le remplir. Voici un exemple simplifié de ce que je fais : ```go package main import "fmt" func main() { data := make([]int, 0, 10) // crée un slice avec une capacité initiale de 10 for i := 0; i < 3; i++ { // Remplir le slice avec des données for j := 0; j < 5; j++ { data = append(data, j) } fmt.Println("Iteration", i, "data:", data) // Ici, je dois vider data avant l'itération suivante // data = ??? que mettre ici ? } } ``` J'ai essayé plusieurs options : 1. `data = nil` — cela remet le slice à zéro, mais est-ce que cela libère la mémoire allouée ? Ou pas ? 2. `data = data[:0]` — cela