GO语言学习总结四 | 青训营

67 阅读1分钟

前序

今天继续总结的是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)