定义结构体

Golang 中最常用的方法是使用关键字 typestruct 来定义一个结构体,以关键字 type 开始,之后是新类型的名字,最后是关键字 struct

  1. // Person 为用户定义的一个类型
  2. type Person struct {
  3. Name string
  4. Age int
  5. Email string
  6. }

还有一些简单的写法,比如:

  1. type T struct {
  2. a, b int
  3. }

也是合法的,它更适用于简单的结构体。

结构体里的字段都有名字,比如上面例子中的 Name、Age 和 Email 等等。如果一个字段在代码中从来不会被用到,那可以把它命名为 _,即空标识符。

结构体中的字段可以是任何类型,甚至是结构体本身,也可以是函数或者接口。可以声明结构体类型的一个变量,然后像下面这样给它的字段赋值:

  1. var p Person
  2. p.Name = "nick"
  3. p.Age = 28

字段标记

在定义结构体时还可以为字段指定一个标记信息:

  1. type Person struct {
  2. Name string `json:"name"`
  3. Age int `json:"age"`
  4. Email string `json:"email"`
  5. }

这些标记信息通过反射接口可见,并参与结构体的类型标识,但在其他情况下被忽略。