2021
05-25
05-25
golang-切片slice的创建方式
在创建一个新的切片是都会先创建一个长度为len的数组,并为其开辟一个cap长度为cap的额外空间,所以在cap范围类增加元素,数组的起始地址不会改变,否则会创建一个新的数组,即起始的位置发生改变数组创建代码intArr:=[...]int{1,2,3,4,5,6,7,9}//方式一指定开始和结束s:=intArr[1:3]//方式er指定开始和结束+容量s:=intArr[1:3:6]创建后的slice[a:b:c]a:起始位置b:截取数据的结束位置默认到末端)c:截取后的容量位置默认到末端...
继续阅读 >
golang扩容规则举个例子来演示下packagemainimport("fmt")funcmain(){arr1:=[4]int{1,2,3,4}//此时slice1为[1,2,3]长度为3,容量为4slice1:=arr1[:3]fmt.Println(slice1,len(slice1),cap(slice1))slice1=append(slice1,5000,6000)fmt.Println(slice1,len(slice1),cap(slice1))}此时容量由原来的4扩容到了8,你以为就是简单的2倍吗?那你可真理解错了,你得知道他背后扩容的原因,我来给你计算下1、原来的容量为4,追加了...