Go语言里切片slice怎么初始化
导读:本文共1259.5字符,通常情况下阅读需要4分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 1.切片是基于数组做的一层封装,灵活能够自动扩容。2.切片的初始化方法①直接创建②基于已有的数组或切片③使用make来创建一个切片第一个5是切片的大小第二个5是切片的容量3.基本操作①获取元素②增加元素append当达到底层的最大容量,切片会进行扩容,扩容的策略是翻倍扩容。下图说明扩容之后,地址也变化了。4.切片的修改和数组(值传递)不一样,切片相当于是一个引用... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。1.切片是基于数组做的一层封装,灵活能够自动扩容。
2.切片的初始化方法
①直接创建
②基于已有的数组或切片
③使用make来创建一个切片
第一个5是切片的大小
第二个5是切片的容量
3.基本操作
①获取元素
②增加元素append
当达到底层的最大容量,切片会进行扩容,扩容的策略是翻倍扩容。
下图说明扩容之后,地址也变化了。
4.切片的修改
和数组(值传递)不一样,切片相当于是一个引用传递。
5.如果计算切片的容量?
例如:b切片的长度和容量是多少?
答案: 长度为2 容量为7
详细可以参考下面图,a、b共用底层切片,但是b是从1开始的,长度为3-1 =2,容量为a其他的底层
6.切片后面追加切片
funcAppendSlice(){slice1:=[]int{1,2,3}slice2:=[]int{3,3,6}slice1=append(slice1,slice2...)for_,value:=rangeslice1{fmt.Println("value的地址",value)}}
注意一下 append(slice1,slice2... ) 这个...定义就是把slice2展开,放到slice1后面。
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
Go语言里切片slice怎么初始化的详细内容,希望对您有所帮助,信息来源于网络。