前序
今天继续总结的是go语言中的一些数据结构,包括:
- 结构体(struct)
- 切片(slice)
结构体
Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。
定义结构体
结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体中有一个或多个成员。type 语句设定了结构体的名称。结构体的格式如下:
type struct_variable_type struct {
member definition
member definition
...
member definition
}
//实例
type Books struct {
title string
author string
subject string
book_id int
}
一旦定义了结构体类型,它就能用于变量的声明,语法格式如下:
variable_name := structure_variable_type {value1, value2...valuen}
//或
variable_name := structure_variable_type { key1: value1, key2: value2..., keyn: valuen}
实例:
Books{"AA", "Peter", "Happy", 1}
Books{title: "AA", author: "Peter", subject: "Happy", book_id: 1})
// 忽略的字段为 0 或 空
Books{title: "AA", author: "Peter"})
访问结构体成员
如果要访问结构体成员,需要使用点号 . 操作符,格式为:
- 结构体.成员名
例如:
var Book1 Books
Book1.title = "AA"
切片(Slice)
切片可以理解成动态数组,没有固定长度,可以通过增加切片容量来增加元素
定义切片
切片不需要说明长度,可使用 make() 函数来创建切片:
var slice1 []type = make([]type, len)
也可以简写为
slice1 := make([]type, len)