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` बंद करना भूल जाऊँ तो क्या बुरा हो सकता है? मेमोरी लीक? प्रोग्राम की धीमी गति? या छोटी स्क्रिप्ट के लिए यह बिल्कुल महत्वपूर्ण नहीं है? कृपया सरल भाषा में समझाएँ कि अंदर क्या हो रहा है। पहले से धन्यवाद!