【发布时间】:2019-09-21 14:22:44
【问题描述】:
我正在阅读这个repo unittest 代码,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
}
【问题讨论】:
-
New() function 函数不是内置的new() 函数。 New() 函数的作用远不止
Client{}。我假设测试需要 New() 中的额外初始化。
标签: pointers go struct new-operator dereference