我创建了一个简单的 go 程序(基本上只是示例代码):
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func getPage(url string) (body []byte, err error) {
resp, err := http.Get(url)
body = nil
if (err != nil) {
return
}
defer resp.Body.Close()
body, err = ioutil.ReadAll(resp.Body)
return
}
func main() {
startUrl := "http://slashdot.org/"
body, err := getPage(startUrl)
if (err != nil) {
fmt.Println("Error: " , err)
}
fmt.Println(body)
}
我正在尝试通过文档来了解它们是如何组合在一起的。
第一个问题:http.Get()。它不在文档中(位于http://golang.org/pkg/net/http/)。除了它是,但在响应下。但是还有 2 个其他 Get() 函数。我怎么知道 net/http.Get 实际上是 Response 类型的 Get() ?
无论如何,所以 http.Get() 返回一个带有 a Body
of的 Response io.ReadCloser
。ioutil.ReadAll() 需要一个 io.Reader - 但是我怎样才能找到其他接受它作为参数的函数?文档似乎是“倒退”的——如果我知道我想要哪个函数,我可以找到文档,但如果我有一个类型,我怎么能找到哪些函数可以使用它?