go通过自定义的方式形成新的类型,结构体是类型中带有成员的复合类型。go使用结构体和结构体成员,描述真实世界的实体和实体对应的各种属性。
go中的类型可以被实例化。使用new
或&
得到类型实例,其类型是对应结构体的指针类型。
结构体成员变量字段,有以下特性:
- 字段拥有值和类型
- 字段名必须唯一
- 字段的类型也可以是结构体,甚至是所在结构体的指针类型
1. 什么是结构体
结构体是一种复合类型,通过关键字type定义基本类型为自定义类型(结构体)后,更便于使用。
1.1 定义结构体
type 结构体类型名 struct{
字段1 字段1的类型 // 字段也可叫做结构体成员变量
字段2 字段2的类型
...
}
- 结构体类型名用于区分不同的结构体名称,同一个包内类型名不能重复
type 结构体类型名 struct{}
,表示把struct{}
定义为类型名
的自定义类型- 字段1、字段2…,表示结构体的字段名,同一个结构体中字段名不能重复
1.2 实例
平面上一个点有X、Y两个分量。定义平面点坐标结构体:
type Point struct{
X int
Y int
}
同类型的结构体字段可以写在一行。定义颜色结构体:
type Color struct{
R, G, B byte
}