【Golang】✔️走进 Go 语言✔️ 第十二课 结构体 & 切片

概述

Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 12 课)

【Golang】✔️走进 Go 语言✔️ 第十二课 结构体 & 切片_初始化

结构体

结构体 (Struct) 指的是一种数据结构, 由一系列具有相同类型或不同类型的数据构成的数据集合. 类似其他语言中的 Class. Go 语言中数组可以存储同一类的数据, 但在结构体中我们可以为不同项定义不同的数据类型.

【Golang】✔️走进 Go 语言✔️ 第十二课 结构体 & 切片_Go_02

定义结构体

我们需要使用typestruct语句来定义结构体. 当我们要访问结构体成员的时候, 我们需要使用结构体.成员名的形式.

格式:

type struct_variable_type struct {
   member definition
   member definition
   ...
   member definition
}

例子:

package main

import "fmt"

// 定义结构体
type person struct {
	name string
	gender string
	age int
}

func main() {

	// 创建person对象
	var 我是小白呀 person
	我是小白呀.name = "你猜"
	我是小白呀.gender = "女"
	我是小白呀.age = 18

	// 调试输出
	fmt.Println(我是小白呀)
	fmt.Println(我是小白呀.name)
	fmt.Println(我是小白呀.gender)
	fmt.Println(我是小白呀.age)
	
}

输出结果:

{你猜 女 18}
你猜
女
18
切片

切片 (Slice) 是对数组的抽象. Go 语言的长度不可改变, 在特定场景中不太适用. Go 语言提供了一种灵活, 功能强大的切片 (动态数组). 相较于数组的长度固定, 切片可以追加元素.

【Golang】✔️走进 Go 语言✔️ 第十二课 结构体 & 切片_数组_03

切片初始化

make()可以帮助我们初始化大小不同的数组.

格式 1:

make([]T, length, capacity)
  • []T: 类型
  • length: 分配空间
  • capacity: 预留分配空间, 可选

格式 2:

var 数组名称 []T

【Golang】✔️走进 Go 语言✔️ 第十二课 结构体 & 切片_数组_04
例 1:

package main

import "fmt"

func main() {

	// 定义切片
	var slice []int = make([]int, 10)
	var slice2 =  []string{"1", "2", "3"}

	// 调试输出
	fmt.Println(slice)
	fmt.Println(slice2)

}

输出结果:

[0 0 0 0 0 0 0 0 0 0]
[]

例 2:

package main

import "fmt"

func main() {

	// 定义切片
	var slice []int

	// 添加元素
	slice = append(slice, 1)
	slice = append(slice, 2)
	slice = append(slice, 3)

	// 调试输出
	fmt.Println(slice)

}

输出结果:

[1 2 3]

【Golang】✔️走进 Go 语言✔️ 第十二课 结构体 & 切片_初始化_05