# 切片

# 1. 简介

切片(Slice)很像数组的数据结构,与数组不同的是,切片的长度可变,使用起来比较灵活。

切片底层是对数组的一层封装。

var a []string

切片不需要制定长度,声明的同时可以进行赋值。

var num = []int{1, 2, 3}

还有一个不同点是,切片是引用类型,数组是值类型。

// 数组
a := [2]int{1, 2}
b := [2]int{1, 2}
a == b // true

值类型可以直接比较,所以两个数组可以直接比较,如果两个数组大小,每一个值都相等返回 true

切片是引用类型,所以不能直接比较。

// 切片
a := []int{1, 2}
b := []int{1, 2}

a == b // 报错

# 2. 切片表达式

为了能够灵活操作切片,我们需要借助切片表达式。

a := []int{1, 2, 3, 4, 5}
s := a[1:3] // [2 3]

上面实例中,声明并初始化了 a 切片,又初始化了 s 切片, s 切片的内容是,截取 a 切片中索引为 1 ~ 3 的两个元素(不包括索引3)。

# 3. 切片长度

s := []int{1, 2, 3}

len(s) // 3

# 4. append 函数

借助 append 函数,能够操作 slice


更新时间: 12/26/2021, 1:44:08 PM