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) }