1.切片的特点
- 实际上指向底层模板数组的一直引用,因此创建切片的效率很好。
- 修改切片实际会修改底层数组,修改底层数组的值会影响所有切片。
例如:
2.切片底层的数据结构
切片很快的原因是因为切片最底层的数据结构里面,保存了一个指向底层数组的指针,一个int值长度,以及一个int值容量,并没有存储数组实体,因此创建和使用效率都很高。
3.容量:
- slice1的容量为4,因为切片实际包含的值为{“a”,”b”,”c”},下标到3,最大可切片下标为4,因为切片是一个前闭后开的切片[0,3),容量即为该切片最大能容纳的长度,这里即为4。
- slice2的容量为1,因为是从下标3开是往后面切,因为是一个前闭后开的过程[3,4),只有一个元素”d”,因此容量为1。