Go基础--Slice
- slice表示一个拥有相同类型元素的可变长度序列
- 数组和slice是紧密相连的,每个非nil类型的slice都有属于他的底层数组,一个底层数组可以对应多个slice,slice可以用于访问数组的全部或部分元素
一、slice定义和使用
slice有三个重要的属性
- 指针:指向slice第一个元素的地址
- 长度:通过len获取,表示当前slice有多少个元素,不能超过slice的容量
- 容量:通过cap获取,容量的大小通常是slice的起始到结束的元素个数,如果使用超出了slice的容量,就会引发panic
slice的基本定义
1 |
|
先定义好数组,然后定义slice使用该数组作为底层数组
1 |
|
当前结构如下图所示:
如果slice的引用超过了该slice的cap,会panic,但是如果超过了len,最终slice会比原slice长
1 |
|
二、slice的比较
slice不像数组那样,可以直接通过
==
或者!=
进行比较,slice唯一可以比较的就是nil
标准库提供了
bytes.Equal
方法用于比较两个字节slice, 其他类型的slice比较需要自己写
三、append函数
append函数用于将元素追加到slice的末尾