Go 语言通过使用如下的格式来声明一个结构体:

type 结构体名称 struct {
结构体成员
}

举个例子:

// 声明结构体 User
type User struct {
id int
name string
sex byte
age int
}

■ ■■■■


3. 初始化的方式

下面可以通过这三种方式初始化:顺序初始化、指定成员初始化以及指针变量的方式初始化。


通过代码演示:

package main


import "fmt"


// 声明结构体 User
type User struct {
id int
name string
sex byte
age int
}


func main() {
// 顺序初始化:
// 每个成员必须初始化
var u1 User = User{111, "zhangsan", 'M', 25}
fmt.Println(u1)

// 指定成员初始化:
// 没有初始化的成员,自动赋值为对应类型的零值
u2 := User{name: "zhangsan"}
fmt.Println(u2)


// 指针变量的方式初始化:
// u3 存放的是User地址
var u3 *User = &User{111, "zhangsan", 'M', 25}
fmt.Printf("u3=%p\n", u3)
fmt.Println((*u3).name)
fmt.Println(u3.name)

// 指针变量的方式初始化:
// 自动推导+指定成员初始化
u4 := &User{name: "mike"}
fmt.Printf("%T\n", u4)
fmt.Println(u4)
}

打印结果如下:

{111 zhangsan 77 25}
{0 zhangsan 0 0}
u3=0xc0000c04b0
zhangsan
zhangsan
*main.User
&{0 mike 0 0}