Go 中的构造函数:仔细观察
在 Go 中,尽管该语言采用非传统的 OOP 方法,但仍然需要初始化具有合理默认值的结构。本文探讨了 Go 中构造函数的替代机制。
默认初始化
零值是 Go 结构体的默认初始化器。例如,结构体:
type Something struct { Name string Value int }
可以用零值初始化为:
var s Something fmt.Println(s) // prints "{"", 0"}"
但是,零值可能并不总是合适的默认值。
替代方法
1。命名构造函数
一种替代方法是使用命名构造函数。这些函数通常以“New”开头,并返回指向已初始化结构的指针。例如,对于上面的结构:
func NewSomething(name string) *Something { return &Something{name, 33} }
此函数允许您使用特定名称和合理的 Value 默认值初始化 Something 结构。
2。压缩构造函数
对于简单的结构,您可以使用构造函数的压缩形式:
func NewSomething(name string) *Something { return &Something{Name: name, Value: 33} }
3.非指针构造函数
如果不需要返回指针,您可以使用非指针返回类型的函数:
func MakeSomething(name string) Something { return Something{name, 33} }
最佳实践注意事项
选择使用哪种方法取决于结构和项目的具体要求。但是,以下一般准则可以提供帮助:
以上是如何在不使用传统构造函数的情况下有效地初始化 Go 中的结构体?的详细内容。更多信息请关注PHP中文网其他相关文章!