基本介绍
结构体定义方式
Go中结构体定义的基本语法如下:
使用案例如下:
// 定义结构体
type Student struct {
Name string
Age int
Gender string
}
结构体是值类型,不同结构体变量的字段是独立的,互不影响。如下:
说明一下:
创建结构体变量
方式一: 指明结构体的类型,结构体字段采用对应的默认值。
var stu1 Student
fmt.Printf("stu1 = %v\n", stu1) // stu1 = { 0 }
fmt.Printf("stu1 type = %T\n", stu1) // stu1 type = main.Student
方式二: 指明结构体的类型,并初始化结构体字段。
var stu2 = Student{
"Alice", 12, "女"}
fmt.Printf("stu2 = %v\n", stu2) // stu2 = {Alice 12 女}
fmt.Printf("stu2 type = %T\n", stu2) // stu2 type = main.Student
方式三: 指明结构体的类型,并通过字段名的方式初始化结构体字段。
var stu3 = Student{
Name: "Alice",
Age: 12,
Gender: "女",
}
fmt.Printf("stu3 = %v\n", stu3) // stu3 = {Alice 12 女}
fmt.Printf("stu3 type = %T\n", stu3) // stu3 type = main.Student
方式四: 通过new函数创建指定类型的结构体变量,得到指向结构体变量的指针。
var stu4 = new(Student)
fmt.Printf("stu4 = %v\n", stu4) // stu4 = &{ 0 }
fmt.Printf("stu4 type = %T\n", stu4) // stu4 type = *main.Student
方式五: 指明结构体的类型,并初始化结构体字段,得到指向结构体变量的指针。
var stu5 = &Student{
"Alice", 12, "女"}
fmt.Printf("stu5 = %v\n", stu5) // stu5 = &{Alice 12 女}
fmt.Printf("stu5 type = %T\n", stu5) // stu5 type = *main.Student
方式六: 指明结构体的类型,并通过字段名的方式初始化结构体字段,得到指向结构体变量的指针。
var stu6 =