При определении исходного кода ответа. go определяется, что тело типа io.ReadCloser, но при печати типа тела следующим кодом печатается *http.http2gzipReader. Они оба одинаковые?
io.ReadCloser
*http.http2gzipReader
package main import ( "fmt" "net/http" ) func main() { //any url url := "https://www.goal.com/en-in" res, _ := http.Get(url) body := res.Body fmt.Printf("tpye is %T", body) }
Нет, они не одинаковы.
io.ReadCloser интерфейс - это тип тела запроса, но *http.http2gzipReader - это конкретный тип, назначенный интерфейсу. Это то, что мы называем, *http.http2gzipReader реализует io.ReadCloser интерфейс.