什么是结构体
-
Go 语言通过用自定义的方式形成新的类型
-
结构体是类型中带有成员的复合类型
结构体和结构体成员来描述真实世界的实体和实体对应的各种属性--->有点类似"类"的概念
Go语言结构体的特点
-
可以被实例化,使用
new
或&
构造的类型实例的类型是类型的指针。--->非常重要
结构体的构成
结构体是由零个或多个任意类型的值聚合成的实体,每个值都可以称为结构体的成员。
成员变量称为"字段"
-
字段拥有自己的类型和值。
-
字段名必须唯一。
-
字段的类型也可以是结构体,甚至是字段所在结构体的类型。
Go中的类
-
Go 语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。--->类C
-
Go 语言的结构体与“类”都是复合结构体
-
Go 语言结构体能拥有方法,且每种自定义类型也可以拥有自己的方法。--->指针指向
定义结构体的关键字
type
将各种基本类型定义为自定义类型。基本类型包括整型、字符串、布尔等。结构体是一种复合的基本类型
结构体定义格式:
type 类型名称 struct{
字段1 字段类型
字段2 字段类型
...
}
各个部分的说明:
-
类型名称:自定义结构体的名称。同一个包内不能重复
-
struct{}
:表示结构体类型。 -
字段:结构体中的字段名必须唯一
-
字段类型:各个字段对应的基本类型
示例代码:
type point struct{
x int
y int
}
type color struct{
R,B,G byte
}
结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存
章节小结:
-
结构体是一个符合类型,里面包含了一些基本类型或者其他结构体类型的字段
-
结构体可以实例化。使用
new
||&
对结构体进行实例。