*http.http2gzipReader 与 io.ReadCloser Golang

*http.http2gzipReader vs io.ReadCloser Golang

在 response.go 的源代码定义中,定义了 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接口。