ネット眺めているとたぶんみんな間違えてる golang の HTTP Respose Body の閉じ方というエントリが流れてきたけれど、多分みんな間違っていないという話。 元エントリでの話 net/httpのResponseを撮るときに、errorがnilであることを確認するだけでは不十分で、Responseがnilかどうかを確かめたほうがよいというエントリ。すなわち、 resp, err := http.Get("http://golang.org") if err != nil { return err } defer resp.Body.Close() resp, err := http.Get("https://api.ipify.org?format=json") if resp != nil { defer resp.Body.Close() // ← ここで nil じゃな