Go語言里切片slice的用法介紹
1.切片是基于數(shù)組做的一層封裝,靈活能夠自動擴(kuò)容。
2.切片的初始化方法
①直接創(chuàng)建
②基于已有的數(shù)組或切片
③使用make來創(chuàng)建一個(gè)切片
第一個(gè)5是切片的大小
第二個(gè)5是切片的容量
3.基本操作
①獲取元素
②增加元素append
當(dāng)達(dá)到底層的最大容量,切片會進(jìn)行擴(kuò)容,擴(kuò)容的策略是翻倍擴(kuò)容。
下圖說明擴(kuò)容之后,地址也變化了。
4.切片的修改
和數(shù)組(值傳遞)不一樣,切片相當(dāng)于是一個(gè)引用傳遞。
5.如果計(jì)算切片的容量?
例如:b切片的長度和容量是多少?
答案: 長度為2 容量為7
詳細(xì)可以參考下面圖,a、b共用底層切片,但是b是從1開始的,長度為3-1 =2,容量為a其他的底層
6.切片后面追加切片
func AppendSlice(){ slice1 := []int{1,2,3} slice2 := []int{3,3,6} slice1 = append(slice1,slice2... ) for _, value := range slice1 { fmt.Println("value的地址",value) } }
注意一下 append(slice1,slice2... ) 這個(gè)...定義就是把slice2展開,放到slice1后面。
到此這篇關(guān)于Go語言切片slice的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
go貨幣計(jì)算時(shí)如何避免浮點(diǎn)數(shù)精度問題
在開發(fā)的初始階段,我們經(jīng)常會遇到“浮點(diǎn)數(shù)精度”和“貨幣值表示”的問題,那么在golang中如何避免這一方面的問題呢,下面就跟隨小編一起來學(xué)習(xí)一下吧2024-02-02golang調(diào)用藍(lán)兔支付實(shí)現(xiàn)網(wǎng)上支付功能
支付寶、微信的網(wǎng)上支付需要營業(yè)執(zhí)照個(gè)人無法直接使用,如果個(gè)人需要實(shí)現(xiàn)網(wǎng)上支付功能,目前大部分應(yīng)該是都是依賴第三方聚合支付來實(shí)現(xiàn),本文就來介紹一下如何調(diào)用藍(lán)兔支付實(shí)現(xiàn)網(wǎng)上支付功能,有需要的可以參考下2023-09-09詳解Golang中Context的三個(gè)常見應(yīng)用場景
Golang?context主要用于定義超時(shí)取消,取消后續(xù)操作,在不同操作中傳遞值。本文通過簡單易懂的示例進(jìn)行說明,感興趣的可以了解一下2022-12-12詳解如何在Golang中實(shí)現(xiàn)CORS(跨域)
很多時(shí)候,需要允許Web應(yīng)用程序在不同域之間(跨域)實(shí)現(xiàn)共享資源,本文將簡介跨域、CORS的概念,以及如何在Golang中如何實(shí)現(xiàn)CORS,文中有詳細(xì)的示例代碼,需要的朋友可以參考下2023-10-10Go語言實(shí)現(xiàn)AES加密并編寫一個(gè)命令行應(yīng)用程序
密碼學(xué)中的高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),又稱Rijndael加密法,是經(jīng)常采用的一種區(qū)塊加密標(biāo)準(zhǔn)。本文就來用Go語言實(shí)現(xiàn)AES加密算法,需要的可以參考一下2023-02-02