Go 语言通过使用如下的格式来声明一个结构体:
type 结构体名称 struct {结构体成员}
举个例子:
// 声明结构体 Usertype User struct {id intname stringsex byteage int}
■ ■■■■
下面可以通过这三种方式初始化:顺序初始化、指定成员初始化以及指针变量的方式初始化。
通过代码演示:
package mainimport "fmt"// 声明结构体 Usertype User struct {id intname stringsex byteage 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=0xc0000c04b0zhangsanzhangsan*main.User&{0 mike 0 0}