Avatar ·

Que se passe-t-il si on ne ferme pas response.Body en Go ? Fuite mémoire et autres problèmes

Bonjour à tous ! Je viens de commencer à apprendre Go et j'écris un simple client HTTP pour récupérer des données depuis une API. J'ai ce code : ```go resp, err := http.Get("https://api.example.com/data") if err != nil { log.Fatal(err) } // Je ne ferme pas resp.Body data, _ := io.ReadAll(resp.Body) fmt.Println(string(data)) ``` Tout fonctionne, les données arrivent. Mais j'ai remarqué que dans de nombreux exemples sur Stack Overflow et dans la documentation Go, on écrit `defer resp.Body.Close()`. Honnêtement, je ne comprends pas à quoi ça sert si le programme se termine immédiatement après la lecture des données ? Qu'est-ce qui pourrait mal se passer si j'oublie de fermer `response.Body` ? Fuite mémoire ? Ralentissement du programme ? Ou ce n'est pas du tout critique pour les petits scripts ? Expliquez-moi, s'il vous plaît, simplement ce qui se passe sous le capot. Merci d'avance !