对不起这个可怕的糟糕标题,首先,如果有人在阅读我的问题后可以提供更好的标题编辑,请提交,我现在的术语非常糟糕。
所以,简单的问题:
阅读net/http
包,了解如何提出http.Get
请求,并说明我要做的就是
resp, err := http.Get(blah)
好的,所以滚动列表以查看此Get
函数所采用的参数,我无法直接在http包的函数下找到它
向下滚动我在Get
type Client
方法
那么为什么我不必先http.Client
然后提出Get
请求呢?只是有点困惑。谢谢你的帮助。
答案 0 :(得分:3)
这是该方法的两个不同版本。在一个案例中; http.Get
它在包级别定义,这很像C#或Java中的静态方法。在另一个中,它有一个http.Client
类型的接收器,它更像是C#或Java中该类型的实例方法。类型http.Client
正如您在同一个包中所期望的那样。
包级别获取: http://golang.org/pkg/net/http/#Get
func Get(url string) (resp *Response, err error)
//^ absence of receiver = package scoped
//^ uppercase method name so it is 'exported' which is about like public
客户接收器获取: http://golang.org/pkg/net/http/#Client.Get
func (c *Client) Get(url string) (resp *Response, err error)
//^ this is the receiver