Avatar ·

यदि Go में response.Body को बंद नहीं किया जाए तो क्या होगा? मेमोरी लीक और अन्य समस्याएँ

सभी को नमस्ते! मैंने अभी-अभी Go सीखना शुरू किया है और API से डेटा प्राप्त करने के लिए एक सरल HTTP क्लाइंट लिख रहा हूँ। मेरे पास यह कोड है:\n\n```go\nresp, err := http.Get("https://api.example.com/data")\nif err != nil {\n log.Fatal(err)\n}\n// मैं resp.Body को बंद नहीं कर रहा हूँ\ndata, _ := io.ReadAll(resp.Body)\nfmt.Println(string(data))\n```\n\nसब कुछ काम कर रहा है, डेटा आ रहा है। लेकिन मैंने देखा कि Stack Overflow और Go डॉक्यूमेंटेशन में कई उदाहरणों में `defer resp.Body.Close()` लिखा होता है। सच कहूँ तो, मुझे समझ नहीं आता कि यदि प्रोग्राम डेटा पढ़ने के तुरंत बाद समाप्त हो जाता है तो इसकी क्या आवश्यकता है? यदि मैं `response.Body` को बंद करना भूल जाऊँ तो क्या बुरा हो सकता है? मेमोरी लीक? प्रोग्राम की धीमी गति? या छोटे स्क्रिप्ट के लिए यह बिल्कुल महत्वपूर्ण नहीं है? कृपया सरल शब्दों में समझाएँ कि अंदर क्या हो रहा है। पहले से धन्यवाद!