golang 切片

190 阅读1分钟

为什么使用切片

弥补数组不足 1.数组容量固定,不能自动扩展 2.值传递,数组作为函数参数时,将整个数组拷贝一份给形参 在go语言中,几乎可以在所有场景中使用切片代替数组

切片不是数组或数组指针,它是新的数据结构,用来操作数组内部元素。用来存储数组首地址,数值长度和数组容量

runtime/slice.go
type slice struct {
        *p, 首地址
        len, 长度
        cap 容量
}

切片使用

数组和切片定义区别 创建数组时[]内指定数组长度 创建切片时[] 为空 切片名称[low: high, max] low: 起始下标位置 high: 结束下标位置 len = high - low 容量:cap = max-low

截取数组,初始化切片时,没哟指定切片容量时,切片容量跟随原数组或切片 左闭右开: