首页 >后端开发 >Golang >如何在没有构造函数的情况下初始化结构体?

如何在没有构造函数的情况下初始化结构体?

Susan Sarandon
Susan Sarandon原创
2024-12-18 02:47:14171浏览

How Do I Initialize Structs in Go Without Constructors?

Go 中的构造函数

处理 Go 中定义为结构体的自定义类型时,可能需要使用合理的默认值来初始化它们创建。然而,与传统的面向对象编程语言不同,Go 没有专门的结构体构造函数。

构造函数的替代方案:新函数

为了解决这种情况,Go 工程师通常使用“新”功能。这些函数接受初始化所需的参数,并返回指向新结构体实例的指针:

type Thing struct {
    Name  string
    Num   int
}

func NewThing(someParameter string) *Thing {
    p := new(Thing)
    p.Name = someParameter
    p.Num = 33
    return p
}

这种方法允许使用特定默认值初始化结构体值,例如为“Num”字段分配一个值.

压缩的新函数语法

对于简单的结构体,可以使用压缩语法:

func NewThing(someParameter string) *Thing {
    return &Thing{someParameter, 33}
}

非指针返回类型

如果不需要返回指针,可以使用“make”函数代替“新”:

func makeThing(name string) Thing {
    return Thing{name, 33}
}

以上是如何在没有构造函数的情况下初始化结构体?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn