- package main
- import "fmt"
- func main() {
-     //实例化方式一
-     var stu1 Student
-     fmt.Printf("stu1=%T,%v,%q \n", stu1, stu1, stu1)
-     stu1.name = "zs"
-     stu1.age = 12
-     stu1.sex = 1
-     fmt.Printf("stu1=%T,%v,%q \n", stu1, stu1, stu1)
-     //实例化方式二
-     stu2 := Student{}
-     stu2.name = "David"
-     stu2.age = 33
-     stu2.sex = 1
-     fmt.Printf("stu2=%T,%v,%q \n", stu2, stu2, stu2)
-     //实例化方式三
-     stu3 := Student{
-         name: "Josh",
-         age:  28,
-         sex:  1,
-     }
-     fmt.Printf("stu3=%T,%v,%q \n", stu3, stu3, stu3)
-     //实例化四
-     stu4 := Student{"Ruby", 30, 0}
-     fmt.Printf("stu3=%T,%v,%q \n", stu4, stu4, stu4)
-     //实例化五
-     //使用内置函数new()对结构体进行实例化,结构体实例化后形成指针类型的结构体
-     //·new内置函数会分配内存。第一个参数是类型,而不是值,返回的值是指向该类型新分配的零值的指针。该函数用于创建某个类型的指针。
-     stu5 := new(Student)
-     (*stu5).name = "Running"
-     (*stu5).age = 31
-     stu5.sex = 0                                     //语法糖的方式
-     fmt.Printf("stu3=%T,%v,%q \n", stu5, stu5, stu5) //stu3=*main.Student,&{Running 31 0},&{"Running" '\x1f' '\x00'}
- }
- //结构体的定义
- type Student struct {
-     name string
-     age  int
-     sex  int8
- }