Rumah > Artikel > pembangunan bahagian belakang > Di manakah 'defer req.Body.Close()' Perlu Diletakkan dalam Pengendali HTTP Go?
Mengoptimumkan Pengendalian Permintaan: Di Mana Harus "menunda req.Body.Close()" Berada?
Dalam persekitaran pelayan web, ia adalah amalan biasa untuk mengendalikan permintaan menggunakan pengendali net/http. Satu persoalan yang timbul ialah di mana hendak meletakkan pernyataan "defer req.Body.Close()".
Menilai Pilihan Peletakan
Sekiranya penyata ini diletakkan di penghujung daripada fungsi tersebut? Adakah ia penting di mana ia diletakkan?
Jawapan: Tidak Perlu Ditutup
Menurut dokumen rasmi http.Permintaan, badan permintaan tidak perlu ditutup dalam pengendali. Pelayan akan menutupnya secara automatik.
// Pelayan akan menutup badan permintaan. Pengendali ServeHTTP
// tidak perlu.
Pilihan reka bentuk ini menghilangkan keperluan untuk penutupan yang jelas dan memudahkan pengendalian permintaan.
Oleh itu , tidak kira di mana anda meletakkan "defer req.Body.Close()" dalam fungsi anda. Anda boleh memilih untuk meninggalkannya sama sekali kerana pelayan mengendalikan penutupan badan secara dalaman.
Atas ialah kandungan terperinci Di manakah 'defer req.Body.Close()' Perlu Diletakkan dalam Pengendali HTTP Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!