Que se passe-t-il si on ne ferme pas response.Body en Go ? Fuite mémoire et autres problèmes
Bonjour à tous ! Je commence tout juste à 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` ? Une fuite mémoire ? Un 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 !