徐州专业建站公司,做h5网站制作,小程序哪家公司做的好,企业做网站etp和源程序文章目录 关于切片的扩容问题切片的创建切片的扩容切片的缩容 关于切片的扩容问题 如果在程序中出现下列提示#xff1a;说明你建立的切片容量不够#xff0c;超出索引#xff1a; panic: runtime error: index out of range [0] with length 0 切片的创建 Go 语言中的切片是… 文章目录 关于切片的扩容问题切片的创建切片的扩容切片的缩容 关于切片的扩容问题 如果在程序中出现下列提示说明你建立的切片容量不够超出索引 panic: runtime error: index out of range [0] with length 0 切片的创建 Go 语言中的切片是一种动态数组它可以自动扩容和缩容以适应不同的数据量。在实际开发中了解切片的扩容和缩容机制对于优化内存使用和提高程序性能至关重要。 切片的创建方式一般来说有三种
//1.通过数组的切割进行切片的建立
nums:[5]int{1,2,3}//初始化一个切片实例
slicenums[:]//注意切割无论是切割数组还是切片都是**左闭右开**
//var slice []int//2.声明切片并初始化
//2.1
var slice []int//这种方式初始化的切片并未自动分配内存**长度和容量都为0**
//2.2
slice:[]int{1,2,3}//声明并初始化//3.通过make函数进行建立 推荐※※
slice:make([]int,3,5)//第一个参数是长度第二个参数是容量
切片的扩容 golang中当向切片中添加元素时如果切片的容量不足就会触发切片的扩容机制。 切片的扩容会分配一个新的数组并将原来的元素复制到新数组中。 新数组的长度通常是原数组长度的两倍但是如果原数组长度小于 1024新数组的长度会比原数组长度大 1 倍如果原数组长度大于等于 1024新数组的长度会比原数组长度大 1/4 倍。 切片的扩容可以通过内置函数 append 来实现。当切片容量不足时调用 append 函数会触发切片的扩容。 append函数签名如下 func Append(slice []int, items …int) []int 切片的缩容 当从切片中删除元素时如果切片的长度小于容量的 1/4就会触发切片的缩容机制。切片的缩容会释放底层数组中未使用的空间。新数组的长度通常是原数组长度的一半但是如果原数组长度小于 1024新数组的长度等于原数组长度如果原数组长度大于等于 1024新数组的长度会比原数组长度小 1/2 倍。 切片的缩容不需要显式调用任何函数Go 语言的垃圾回收机制会自动进行。 切片的缩容使用我们前面提到的切割即可实现