91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Golang 切片

發布時間:2020-07-18 18:25:10 來源:網絡 閱讀:5741 作者:yanglin_cn 欄目:編程語言

一個切片(slice) 是一個數組某個部分的引用。

1、切片初始化
(1)、通過內置函數make初始化:
slice := make([]Type,len,[cap])
[]Type,某種類型的數組;
Len 表示切片數據長度;
Cap 表示切片容量,cap >= len,該參數可選,默認cap=len
例如: slice := make([]string,5) //初始化一個字符串類型的切片,長度和容量均為5
slice := make([]string,5,10) //初始化一個字符串類型的切片,長度為5,容量為10
(2)、通過現有數組來初始化
slice := arr[startIndex:endIndex] //startIndex,endIndex可選,startIndex默認為0,endIndex默認為arr長度,取得的數組下標是[startIndex:endIndex) 左閉右開區間
例如: arr := […]string{"aaa","bbb","ccc","ddd"}
slice := arr[1:4] //[1:4) 共3個元素創建一個切片
slice := arr[:4] //[0:4) 共4個元素創建一個切片
slice := arr[1:] //[1:len(arr))
slice := arr[:] //[0:len(arr))
通過現有數組來初始化的切片,其長度為len = endIndex-startIndex,cap=len
也可以用 slice := arr[1:2:3] 來指定切片的cap,cap+startIndex <= len(arr)
2、append 操作
切片初始化后,可以使用append來追加元素: append(slice []Type,elems …Type)
例如: sss := make([]string,0,10)
sss = append(sss,"aaaa")

3、append操作引起的改變
(1)、當切片容量不夠時,append操作會對cap擴容,cap擴容長度遵循以下規則:如果當前cap小于1024,則擴容當前大小,即擴容后的cap是當前2倍,如果當前cap大于等于1024,則每次增長當前大小的1/4

    (2)、當切片容量不夠時,append 操作會引起切片內存地址的變化,即,當len=cap時,append操作會開辟一塊內存區域,將現有切片內容復制過去;
    從現有數組初始化切片時,得到的切片地址與初始化切片數組索引startIndex元素的地址一致,且切片是該數組對因數據的引用,數組元素改變,切片元素也改變,當cap需要擴容時,切片地址發生改變后,切片與數組之間的引用關系解除,數組元素改變,切片元素不會改變
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三门峡市| 湖南省| 婺源县| 宕昌县| 呼玛县| 郁南县| 鄯善县| 荔波县| 香格里拉县| 二连浩特市| 远安县| 南乐县| 阿克苏市| 安塞县| 齐齐哈尔市| 汾西县| 女性| 砀山县| 当阳市| 佛学| 广平县| 永兴县| 都匀市| 高平市| 永清县| 清苑县| 石家庄市| 环江| 潼关县| 韩城市| 三穗县| 平顶山市| 博爱县| 伊春市| 四子王旗| 焉耆| 南华县| 莱州市| 台湾省| 海安县| 大关县|