golang-study/base/struct/constructor/main.go

27 lines
530 B
Go

package main
import "fmt"
type Person struct {
Name string
age int
}
// 构造函数 约定成俗 使用 New 开头
// 返回结构体 因结构体为值类型 赋值的时候都是 拷贝 内存开销大
// 返回结构体指针 当结构体比较大时 使用结构体指针 减少内存开销
func NewPerson(name string, age int) *Person {
return &Person{
name,
age,
}
}
func main() {
p1 := NewPerson("张三", 20)
p2 := NewPerson("李四", 18)
fmt.Printf("%T %#v\n", p1, p1)
fmt.Printf("%T %#v\n", p2, p2)
}