五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Go語言基礎(chǔ) 切片使用

2022-04-26 14:28 作者:后端攻城獅哇  | 我要投稿

Go 中常用的容器

Golang 中以標(biāo)準(zhǔn)庫的方式提供了常用的容器實(shí)現(xiàn),基本能夠滿足我們?nèi)粘i_發(fā)的需要。我們來具體學(xué)習(xí)下 Go 數(shù)組的使用。

切片

切片是對(duì)數(shù)組一個(gè)連續(xù)片段的引用,它是一個(gè)容量可變的序列。我們可以簡(jiǎn)單將切片理解為動(dòng)態(tài)數(shù)組,它的內(nèi)部結(jié)構(gòu)包括底層數(shù)組指針、大小和容量,它通過指針引用底層數(shù)組,把對(duì)數(shù)據(jù)的讀寫操作限定在指定的區(qū)域內(nèi)。

切片的結(jié)構(gòu)體由三部分組成:

  • array?是指向底層存儲(chǔ)數(shù)據(jù)數(shù)組的指針;

  • len?指當(dāng)前切片的長(zhǎng)度,即成員數(shù)量;

  • cap?指當(dāng)前切片的容量,它總是大于等于?len。

我們可以從原有數(shù)組中生成一個(gè)切片,那么生成的切片指針即指向原數(shù)組,生成的樣式如下:


source表示生成切皮的原有數(shù)組,begin?表示切片的開始位置,end?表示切片的結(jié)束位置,不包含?end?索引指向的成員。具體效果如下例子所示:


輸出的結(jié)果為:

在這個(gè)切片內(nèi),我們僅能訪問長(zhǎng)度內(nèi)的值,如果訪問的下標(biāo)超過了切片的長(zhǎng)度,編譯器將會(huì)拋出下標(biāo)越界的異常。如果此時(shí)我們對(duì)切片內(nèi)的成員進(jìn)行修改,因?yàn)榍衅鳛橹赶蛟袛?shù)組的引用,對(duì)切片進(jìn)行修改就是對(duì)原有數(shù)組進(jìn)行修改,如下例子所示:


結(jié)果如下所示:


上面例子中我們修改了切片中的值,直接導(dǎo)致原數(shù)組中的值也發(fā)生了變化。

我們也可以通過?make?函數(shù)動(dòng)態(tài)創(chuàng)建切片,在創(chuàng)建過程中指定切片的長(zhǎng)度和容量,樣式如下所示:


T?即切片中的成員類型,size?為當(dāng)前切片具備的長(zhǎng)度,cap?為當(dāng)前切片預(yù)分配的長(zhǎng)度,即切片的容量。例子如下所示:

輸出的結(jié)果如下:

從上述輸出可以看到?make?函數(shù)創(chuàng)建的新切片中的成員都被初始化為類型的初始值。

切片本質(zhì)就是一個(gè)結(jié)構(gòu)體,他里面包含三部分:address + len + cap,因此作為一個(gè)引用空間,該空間和元素空間完全是兩個(gè)空間,所以切片的首地址和頭號(hào)元素的首地址完全不同。

Go語言基礎(chǔ) 切片使用的評(píng)論 (共 條)

使用qq登录你需要登录后才可以评论。
和静县| 航空| 平武县| 常德市| 邢台市| SHOW| 宜州市| 张掖市| 康乐县| 精河县| 六枝特区| 金湖县| 襄汾县| 读书| 富源县| 平江县| 大兴区| 澄城县| 靖西县| 金坛市| 宽甸| 岳阳县| 迭部县| 宁陵县| 辽阳市| 洛扎县| 莲花县| 赞皇县| 赤水市| 商丘市| 凤山县| 蓬安县| 依安县| 宁南县| 娄烦县| 蕲春县| 乐都县| 孙吴县| 宁陕县| 枝江市| 澄城县|