GO學(xué)習(xí) slice

切片的運用

package main

import "fmt"

func main() {

? /*

? 數(shù)組array:

? ? 存儲一組相同數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu)

? ? ? 特點:定長

? 切片Slice:

? ? 同數(shù)組類似踱承,也叫做邊長數(shù)組或動態(tài)數(shù)組抽碌。

? ? ? ? 特點:變長

? ? 是一個引用類型的容器必怜,指向了一個底層數(shù)組

? make()

? ? func make(t Type,size ...IntegerType)Type

? ? 第一個參數(shù):類型

? ? ? slice,map,chan

? ? 第二個參數(shù):長度

? ? ? 實際存儲元素的數(shù)量

? ? 第三個參數(shù):容量cap

? ? ? 最多能夠存儲的元素的數(shù)量

? append():專門用于向切片的尾部追加元素

? ? sliece = append(slice,elem1,elem2)

? ? sliece = append(slice,anotherSlilce...)

? */

? //1.數(shù)組

? arr :=[4]int{1,2,3,4}//定長

? fmt.Println(arr)

? //2.切片

? var s1 []int

? fmt.Println(s1)

? s2 := []int{1,2,3,4}//變長

? fmt.Println(s2)

? fmt.Printf("%T,%T\n",arr,s2)//[4]int,[]int

? s3 :=make([]int,3,8)

? fmt.Println(s3)

? fmt.Printf("容量:%d,長度:%d\n",cap(s3),len(s3))

? s3[0] = 1

? s3[1] = 2

? s3[2] = 3

? fmt.Println(s3)

? //fmt.Println(s3[3])//panic: runtime error: index out of range [3] with length 3

? //append()

? s4 := make([]int,0,5)

? fmt.Println(s4)

? s4 = append(s4,1,2)

? fmt.Println(s4)

? s4 = append(s4,3,4,5,6,7)

? fmt.Println(s4)

? s4 = append(s4,s3...)

? fmt.Println(s4)

? //遍歷切片

? for i :=0;i <len(s4);i++{

? ? fmt.Println(s4[i])

? }

? for i,v :=range s4{

? ? fmt.Printf("%d-->%d\n",i,v)

? }

}

運行輸出:

[1 2 3 4]

[]

[1 2 3 4]

[4]int,[]int

[0 0 0]

容量:8,長度:3

[1 2 3]

[]

[1 2]

[1 2 3 4 5 6 7]

[1 2 3 4 5 6 7 1 2 3]

1

2

3

4

5

6

7

1

2

3

0-->1

1-->2

2-->3

3-->4

4-->5

5-->6

6-->7

7-->1

8-->2

9-->3

Process finished with exit code 0

切片的擴容和內(nèi)存分析

package main

import "fmt"

func main() {

? /*

? 切片slice:

? ? 1.每一個切片引用一個底層數(shù)組

? ? 2.切片本身不存儲任何數(shù)據(jù),都是這個底層數(shù)組存儲闹炉,所以修改切片也就是修改這個數(shù)組中的數(shù)組

? ? 3.當(dāng)向切片中添加數(shù)據(jù)時呵哨,如果沒有超過容量嗤攻,直接添加,如果超過容量屿愚,自動擴容(成倍增長)

? ? 4.切片一旦擴容汇跨,就是重新指向一個新的底層數(shù)組

? 擴容:

? s1:3-->6-->12-->24

? s2:4-->8-->16-->32...

? */

? s1 := []int{1,2,3}

? fmt.Println(s1)

? fmt.Printf("len:%d,cap:%d\n",len(s1),cap(s1)) //len:3,cap:3

? fmt.Printf("%p\n",s1)

? s1 = append(s1,4,5)

? fmt.Println(s1)

? fmt.Printf("len:%d,cap:%d\n",len(s1),cap(s1)) //len:5,cap:6

? fmt.Printf("%p\n",s1)

? s1 = append(s1,6,7,8)

? fmt.Println(s1)

? fmt.Printf("len:%d,cap:%d\n",len(s1),cap(s1)) //len:8,cap:12

? fmt.Printf("%p\n",s1)

? s1 = append(s1,9,10)

? fmt.Println(s1)

? fmt.Printf("len:%d,cap:%d\n",len(s1),cap(s1)) //len:10,cap:12

? fmt.Printf("%p\n",s1)

? s1 = append(s1,11,12,13,14,15)

? fmt.Println(s1)

? fmt.Printf("len:%d,cap:%d\n",len(s1),cap(s1)) //len:15,cap:24

? fmt.Printf("%p\n",s1)

}

運行輸出:

[1 2 3]

len:3,cap:3

0xc0000143c0

[1 2 3 4 5]

len:5,cap:6

0xc00000c360

[1 2 3 4 5 6 7 8]

len:8,cap:12

0xc000042060

[1 2 3 4 5 6 7 8 9 10]

len:10,cap:12

0xc000042060

[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]

len:15,cap:24

0xc000102000

Process finished with exit code 0

讀完點個贊,給我的堅持更新注入新的活力。

2022.05.16日更 70/365 天

公眾號:3天時間

往期同類文章:

GO學(xué)習(xí) 多維數(shù)組

GO學(xué)習(xí) Array類型和排序

GO學(xué)習(xí) Array

GO學(xué)習(xí) goto語句和隨機函數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末归斤,一起剝皮案震驚了整個濱河市密任,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌塞颁,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,294評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吸耿,死亡現(xiàn)場離奇詭異祠锣,居然都是意外死亡,警方通過查閱死者的電腦和手機咽安,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評論 3 385
  • 文/潘曉璐 我一進(jìn)店門伴网,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人妆棒,你說我怎么就攤上這事澡腾。” “怎么了糕珊?”我有些...
    開封第一講書人閱讀 157,790評論 0 348
  • 文/不壞的土叔 我叫張陵动分,是天一觀的道長。 經(jīng)常有香客問我红选,道長澜公,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,595評論 1 284
  • 正文 為了忘掉前任喇肋,我火速辦了婚禮坟乾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蝶防。我一直安慰自己甚侣,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,718評論 6 386
  • 文/花漫 我一把揭開白布间学。 她就那樣靜靜地躺著殷费,像睡著了一般。 火紅的嫁衣襯著肌膚如雪菱鸥。 梳的紋絲不亂的頭發(fā)上宗兼,一...
    開封第一講書人閱讀 49,906評論 1 290
  • 那天,我揣著相機與錄音氮采,去河邊找鬼殷绍。 笑死,一個胖子當(dāng)著我的面吹牛鹊漠,可吹牛的內(nèi)容都是我干的主到。 我是一名探鬼主播茶行,決...
    沈念sama閱讀 39,053評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼登钥!你這毒婦竟也來了畔师?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,797評論 0 268
  • 序言:老撾萬榮一對情侶失蹤牧牢,失蹤者是張志新(化名)和其女友劉穎看锉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體塔鳍,經(jīng)...
    沈念sama閱讀 44,250評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡伯铣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,570評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了轮纫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腔寡。...
    茶點故事閱讀 38,711評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖掌唾,靈堂內(nèi)的尸體忽然破棺而出放前,到底是詐尸還是另有隱情,我是刑警寧澤糯彬,帶...
    沈念sama閱讀 34,388評論 4 332
  • 正文 年R本政府宣布凭语,位于F島的核電站,受9級特大地震影響情连,放射性物質(zhì)發(fā)生泄漏叽粹。R本人自食惡果不足惜览效,卻給世界環(huán)境...
    茶點故事閱讀 40,018評論 3 316
  • 文/蒙蒙 一却舀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锤灿,春花似錦挽拔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,796評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至状囱,卻和暖如春术裸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背亭枷。 一陣腳步聲響...
    開封第一講書人閱讀 32,023評論 1 266
  • 我被黑心中介騙來泰國打工袭艺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人叨粘。 一個月前我還...
    沈念sama閱讀 46,461評論 2 360
  • 正文 我出身青樓猾编,卻偏偏與公主長得像瘤睹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子答倡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,595評論 2 350

推薦閱讀更多精彩內(nèi)容