Если Response.Body
не будет закрыт с помощью метода Close()
, чем ресурсы, связанные с fd, не будут освобождены. Это утечка ресурса.
Response.Body
Ответственность вызывающего абонента для закрытия тела.
blockquote>Таким образом, нет финализаторов, связанных с объектом, и он должен быть явно закрыт.
Обработка ошибок и отложенные очистки
При ошибке любой ответ можно игнорировать. Ответ на не-nil с ошибкой non-nil возникает только тогда, когда CheckRedirect терпит неудачу, и даже тогда возвращенный Response.Body уже закрыт.
blockquote>resp, err := http.Get("http://example.com/") if err != nil { // Handle error if error is non-nil } defer resp.Body.Close() // Close body only if response non-nil