1.3.1 数组和切片基础
Go语言中的数组长度不可变,在特定场景中这样的集合就不太适用,因此,使用提供了一种更灵活,更强悍的内置类型Slices(切片)
切片的长度是不固定的,可以追加元素,在追加时,可能使切片容量增多
切片中有两个概念:
长度:len 已被赋过值的最大下标+1,可通过
len()函数获取容量:cap 切片目前可容纳的元素个数,可通过
cap()函数获得
切片是引用类型,因此在传递切片时将引用同一指针,修改切片的值会影响使用该切片的其他对象
切片是对数组的一个连续”片段“的引用,这个片段可以是整个数组,也可以是由起始和终止索引标识的一些项的子集
注意:终止索引表示的项目不包括在切片内
切片的内部结构包含地址、大小、和容量。切片一般用于快速操作一个数据集合
切片结构体有三部分组成:
pointer是指向一个数组的指针len代表当前切片的长度cap是当前切片的容量
cap长度 >=len长度切片默认指向一段连续内存区域,可以是数组,也可以是切片本身。从连续内存区域生成切片是常见的操作,格式如下:
slice[开会位置:结束位置]备注:
slice:表示目标切片对象
开始位置:对应目标切片对象的索引
结束为止:对应目标切片的结束索引
切片的创建有以下四种方式:
make([]Type, length, capacity)make([]Type, length)[]Type{}[]Type{value1, value2, ..., valueN}
Last updated