第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Golang 切片

標簽:
Go

一个切片(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需要扩容时,切片地址发生改变后,切片与数组之间的引用关系解除,数组元素改变,切片元素不会改变

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消