切片Slice
-其本身并不是數(shù)組,它指向底層的數(shù)組
-作為變長數(shù)組的替代方案,可以關(guān)聯(lián)底層數(shù)組的局部或全部
-為引用類型
-可以直接創(chuàng)建或從底層數(shù)組獲取生成
-使用len()獲取元素個數(shù),cap()獲取容量
-一般使用make()創(chuàng)建
-如果多個slice指向相同底層數(shù)組,基中一個的值改變會影響全部
-make([]T,len,cap)
-其中cap可以省略,則和len的值相同
-len表示存數(shù)的元素個數(shù), cap表示容量
聲明
-var s1 []int
-s1 := make([]int, 3, 5)
Reslice
-Reslice時索引以被slice的切片為準(zhǔn)
-索引不可以超過被slice的切片的容量cap()值
-索引越界不會導(dǎo)致底層數(shù)組的重新分配而是引發(fā)錯誤
Append
-可以在slice尾部追加元素
-可以將一個slice追加在另一個slice尾部
-如果最終長度未超過追加到slice的容量則返回原始slice
-如果超過追加到的slice的容量則將重新分配數(shù)組并拷貝原始數(shù)據(jù)