定义结构体
在 Golang
中最常用的方法是使用关键字 type
和 struct
来定义一个结构体,以关键字 type
开始,之后是新类型的名字,最后是关键字 struct
:
// Person 为用户定义的一个类型
type Person struct {
Name string
Age int
Email string
}
还有一些简单的写法,比如:
type T struct {
a, b int
}
也是合法的,它更适用于简单的结构体。
结构体里的字段都有名字,比如上面例子中的 Name、Age 和 Email 等等。如果一个字段在代码中从来不会被用到,那可以把它命名为 _,即空标识符。
结构体中的字段可以是任何类型,甚至是结构体本身,也可以是函数或者接口。可以声明结构体类型的一个变量,然后像下面这样给它的字段赋值:
var p Person
p.Name = "nick"
p.Age = 28
字段标记
在定义结构体时还可以为字段指定一个标记信息:
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Email string `json:"email"`
}
这些标记信息通过反射接口可见,并参与结构体的类型标识,但在其他情况下被忽略。