登录
首页 >  Golang >  Go问答

Golang 用 New() 返回结构体指针,而不是直接创建一个

来源:stackoverflow

时间:2024-03-30 13:06:36 117浏览 收藏

从现在开始,努力学习吧!本文《Golang 用 New() 返回结构体指针,而不是直接创建一个》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我正在阅读此存储库单元测试代码,并且 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() 函数是 Client 的构造函数:

https://github.com/go-resty/resty/blob/63ac6744519b3b3e976256d87d7b097c3a2c8dbc/default.go#L25

使用构造函数允许使用设置的默认值构造结构,而不是像执行 Client{} 那样对所有内部字段使用零值。例如,在本例中,最大主体大小设置为 math.MaxInt32 而不是 0。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>