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