Golang学习笔记(六):结构体

428 阅读2分钟

原创作者,公众号【程序员读书】,欢迎关注公众号,转载文章请注明出处哦。

结构体与数组一样,属于聚合类型,结构体可以包含零个或任意个类型的值。而这些值则称为结构体的成员。

声明与使用

结构体使用struct关键字进行定义声明,下列代码中声明一个名称为User结构体,用于表示一个用户信息,声明结构体后,便可以用于定义结构体变量。

定义

type User struct {
	Uid      int
	Username string
	Sex      int
	Phone    string
	Address  string
	email    string
}

初始化结构体变量的几种方式

定义好结构体后,便可以使用该结构体声明变量了,以下是定义结构体变量的几种方式。

  1. 直接声明一个变量,这时结构体中的成员都为各自类型的零值,如Uid的值为0,UserName的值为""。
var u User //成员均为空值
  1. 使用new函数,定义一个指向结构体的指针。
u := new(User)
  1. 使用字面量值,这种方式可以在定义变量的时候,给成员赋值,可以按顺序给成员变量赋值,这种方式要求记住结构体中每个成员的顺序,且每个成员必须赋值;另外一种是按成员名称赋值,这样则不需要按顺序赋值,没有赋值的成员则为零值。
u := User{1,"testUser",1,"137xxxxxxxx","测试地址","test@163.com"}

成员赋值、访问成员、取址

声明结构体变量后,可以通过变量名跟着点操作符访问结构体中的字段,而由于成员都是变量,因此结构体成员也可像变量一样取址的,如:

u.id = 100 //赋值

fmt.Println(u.Uid)//访问,输出100

u1 := &u.id //取址

*u1 = 1000

fmt.Println(u.id)//输出1000


你的关注,是我写作路上最大的鼓励!