Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 12 课)
结构体结构体 (Struct) 指的是一种数据结构, 由一系列具有相同类型或不同类型的数据构成的数据集合. 类似其他语言中的 Class. Go 语言中数组可以存储同一类的数据, 但在结构体中我们可以为不同项定义不同的数据类型.
定义结构体我们需要使用type
和struct
语句来定义结构体. 当我们要访问结构体成员的时候, 我们需要使用结构体.成员名
的形式.
格式:
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 语言提供了一种灵活, 功能强大的切片 (动态数组). 相较于数组的长度固定, 切片可以追加元素.
切片初始化make()
可以帮助我们初始化大小不同的数组.
格式 1:
make([]T, length, capacity)
- []T: 类型
- length: 分配空间
- capacity: 预留分配空间, 可选
格式 2:
var 数组名称 []T
例 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]