go的R方法的使用
go的许多开源软件中都会有到R()这个方法,这个方法主要用来快速初始化指针对象,字面意思有复制品的意思(replica),就是复制自己的意思。下面用开源软件的代码来演示下使用方法。
定义结构体:type Request struct { URL string Method string Token string AuthScheme string QueryParam url.Values FormData url.Values Header http.Header Time time.Time Body interface{} Result interface{} Error interface{} RawRequest *http.Request SRV *SRVRecord UserInfo *User Cookies []*http.Cookie }
定义R()方法func (c *Client) R() *Request { r := &Request{ QueryParam: url.Values{}, FormData: url.Values{}, Header: http.Header{}, Cookies: make([]*http.Cookie, 0), client: c, multipartFiles: []*File{}, multipartFields: []*MultipartField{}, pathParams: map[string]string{}, jsonEscapeHTML: true, } return r }
调用R()h := resty.New() res, _ := h.R().Get("www.baidu.com")
这样每个http请求就可以是一个新初始化的指针对象进行调用