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

https://juejin.im/post/5c83a9dde51d453b7666af4d

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

声明与使用

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

定义

  1. type User struct {
  2. Uid int
  3. Username string
  4. Sex int
  5. Phone string
  6. Address string
  7. email string
  8. }

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

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

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

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

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

  1. u.id = 100 //赋值
  2. fmt.Println(u.Uid)//访问,输出100
  3. u1 := &u.id //取址
  4. *u1 = 1000
  5. fmt.Println(u.id)//输出1000
ft_authoradmin  ft_create_time2019-08-03 17:05
 ft_update_time2019-08-03 17:05