我正在阅读此repo单元测试代码,并且以前所未有的方式创建了Client
结构。
type Client struct {
// client stuff
}
// In client_test.go
// Creating default client for testing
c := dc()
// In resty_test.go
func dc() *Client {
DefaultClient = New()
DefaultClient.SetLogger(ioutil.Discard)
return DefaultClient
}
我的问题是返回New()
的目的是什么?
以下代码的行为与New()
样式相似吗?为什么要选择一个?
func dc() *Client {
DefaultClient := Client{}
return &DefaultClient
}
答案 0 :(得分:0)
New()
函数是Client
的构造函数:
https://github.com/go-resty/resty/blob/63ac6744519b3b3e976256d87d7b097c3a2c8dbc/default.go#L25
使用构造函数可以使用默认值设置构造结构,而不是像对Client{}
那样对所有内部字段使用零值。例如,在这种情况下,最大主体大小设置为math.MaxInt32
而不是0。