golang之结构体

构造函数

Go语言的结构体没有构造函数,我们可以自己实现。
例如,下方的代码就实现了一个person的构造函数。
因为struct是值类型,如果结构体比较复杂的话,值拷贝性能开销会比较大,所以该构造函数返回的是结构体指针类型。

type person struct {
	name string
	city string
	age  int8
}

func newPerson(name, city string, age int8) *person {
	return &person{
		name: name,
		city: city,
		age:  age,
	}
}

//调用构造函数
func main() {
	p9 := newPerson("张三", "沙河", 90)
        fmt.Printf("%#v\n", p9) //&main.person{name:"张三", city:"沙河", age:90}
}

相关推荐