构造函数介绍
Golang作为结构化的语言是没有面向对象语言中的构造方法的,不过可以通过一些方式实现类似的面向对象语言中构造方法的效果。
因为 struct
是值类型,如果结构体比较复杂的话,值拷贝
性能开销会比较大,所以该构造函数返回的是结构体指针
类型。
规范
-
New
关键字开头 -
返回结构体指针
示例
package main
import "fmt"
// 结构体
type dog struct {
name string
}
// NewDog 构造函数
func NewDog(name string) *dog {
return &dog{
name: name,
}
}
func main() {
d := NewDog("小明")
fmt.Println(d) // 输出:&{小明}
}