为了一个简单的例子,假设我们使用下面的代码来读取body一个 http Get 请求:
func main() {
resp, err := http.Get("http://google.com")
defer resp.Body.Close()
if err != nil {
log.Fatalln(err)
}
bs := make([]byte, 99999)
resp.Body.Read(bs)
fmt.Println(string(bs))
}
据我所知,在 Go 中,变量按值传递给函数(因此函数使用传递值的副本而不是原始值本身);Go forRead方法的文档是:
type Reader interface {
Read(p []byte) (n int, err error)
}
根据文档,p []byte是类型[]byte而不是它的指针([]*byte);那么该resp.Body.Read方法如何直接访问和编辑bs变量本身(不是指针)?
动漫人物
慕容708150
相关分类