基本介绍:程序员
切片不只能够使用len函数,还有cap函数来计算切片的容量;数组
切片在内存中的形式:数据结构
从该图咱们能够得出:app
切片使用的三种方式:ide
方式1和方式2的区别:函数
方式1是直接引用数组,这个数组是事先存在的,程序员是可见的;方式2经过make,make也会建立一个数组,是由切片在底层进行维护,对程序员是不可见的;3d
切片的遍历:与数组同样,也是有两种;blog
切片使用的注意事项:内存
切片append底层原理分析:
(1)切片append本质上是对数组扩容;字符串
(2)go语言会建立一个新的数组(扩容后)
(3)将slice原来包含的元素拷贝到新的数组;
(4)slice从新引用到新数组;
(5)新数组是在底层来维护的,程序员不可见;
切片的拷贝操做:
切片使用copy内置函数完成拷贝;
intArr和intArr2空间是相互独立的,相互之间不会影响;
若元素不够,则只拷贝一部分;
string和切片的关系:
(1)string底层实现是一个byte数组,所以string也能够进行切片;
(2)string是不可变的;
(3)若是要修改字符串,先要将string-->[]byte,或者[]rune-->修改-->重写装成string;要替换中文,用[]rune;