ماذا يحدث إذا لم يتم إغلاق response.Body في Go؟ تسرب الذاكرة ومشاكل أخرى
مرحباً بالجميع! لقد بدأت للتو في تعلم Go وأقوم بكتابة عميل HTTP بسيط لجلب البيانات من API. لدي هذا الكود:\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`؟ تسرب الذاكرة؟ بطء البرنامج؟ أم أن هذا ليس حرجاً على الإطلاق للنصوص الصغيرة؟ اشرحوا لي، من فضلكم، بطريقة مبسطة ما يحدث تحت الغطاء. شكراً مسبقاً!