工厂函数

个人理解

工厂函数顾名思义就是这个函数像工厂一样生产。一般用于创建自定义的结构体,便于使用者调用

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type person struct{
name string
age uint
}

func NewPerson(name string) *person{
return &person{name: name}
}

func main(){
User1 := person{name: "JunNanZeng"}
User2 := NewPerson("JunNanZeng")
// User1 将创建值类型接口和指针类型接口
// User2 只创建指针类型接口
}

看似User1User2一样,实际上返回的不一样,User1创建的person返回的是值,而User2返回的是指针类型*person

检验

对以上的说法我们可以使用以下的方法进行检验

1
2
3
4
5
6
7
8
func main(){
User1 := person{name: "JunNanZeng"}
User2 := NewPerson("JunNanZeng")
println(User1.name)
println(User2)
// JunNanZeng
// 0x......一串内存地址
}