(二十六)golang--切片
切片不仅可以使用len函数,还有cap函数来计算切片的容量; 切片在内存中的形式: ? ? ? ? ? ?从该图我们可以得出:
切片使用的三种方式:
方式1和方式2的区别: 方式1是直接引用数组,这个数组是事先存在的,程序员是可见的;方式2通过make,make也会创建一个数组,是由切片在底层进行维护,对程序员是不可见的; 切片的遍历:与数组一样,也是有两种; ?切片使用的注意事项:
切片append底层原理分析: (2)go语言会创建一个新的数组(扩容后) (3)将slice原来包含的元素拷贝到新的数组; (4)slice重新引用到新数组; (5)新数组是在底层来维护的,程序员不可见; 切片的拷贝操作: intArr和intArr2空间是相互独立的,相互之间不会影响; 若元素不够,则只拷贝一部分; ? ? ?string和切片的关系: (1)string底层实现是一个byte数组,因此string也可以进行切片; (2)string是不可变的; (3)如果要修改字符串,先要将string-->[]byte,或者[]rune-->修改-->重写装成string;要替换中文,用[]rune; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |