Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。
结构体表示一项记录,比如保存图书馆的书籍记录,每本书有以下属性:
Title :标题
Author: 作者
Subject:学科
ID:书籍ID
结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体有中有一个或多个成员。type 语句设定了结构体的名称。结构体的格式如下:
type struct_variable_type struct {
member definition;
member definition;
...
member definition;
}
一旦定义了结构体类型,它就能用于变量的声明,语法格式如下:
variable_name := structure_variable_type {value1, value2...valuen}
或
variable_name := structure_variable_type { key1: value1, key2: value2..., keyn: valuen}
我们测试一个结构体的实例看一下。
看一下Demo实例的结果
我们还可以访问结构体中的成员。
访问结构体中的成员
如果我们需要访问结构体的成员,需要使用点号 .
操作符号,格式为:
结构体.成员名
其实就有点像JAVA中的类名.变量,或者类名.方法这种
结构体类型变量使用struct关键字定义,实例如下
实例运行结果
结构体 还能 作为函数参数
你可以像其他数据类型一样将结构体类型作为参数传递给函数。
并以以上实例的方式访问结构体变量:
看一下Demo实例
在这里插入图片描述
我们看一下实例运行结果
就看上边这个定义的结构体直接就能作为函数参数使用,然后还可以参数.属性。
有时候结构体指针还类似于其他的指针变量
结构体指针
var struct_pointer *Books
以上定义的指针变量可以存储结构体变量的地址。查看结构体变量地址,可以将 & 符号放置于结构体变量前:
struct_pointer = &Book1;
使用结构体指针访问结构体成员,使用 “.” 操作符: 还是使用点
struct_pointer.title;
实例
实例运行结果如下
下一次再介绍一下Go语言切片,这个比较有意思