s1 := []int{1, 2, 3, 4, 5} //短操作符聲明 len為4,cap為4
s2 := make([]int, 2, 4) //make語法聲明 ,len為2,cap為4
s2 = []int{5, 6}
s3 := append(s2, 7) //append一個元素
fmt.Println(s3, s2) //[5 6 7] [5 6]
s2[0] = 0
fmt.Println(s3, s2) //[5 6 7] [0 6]
s4 := append(s2, s1...) //append 一個切片所有的元素
fmt.Println(s4) //[0 6 1 2 3 4 5]
//return
copy(s1, s2) // 復制,用s2的元素填充s1里去,改變原slice,覆蓋對應的key
fmt.Println(s1) //[0 6 3 4 5]
s1[0], s1[1] = 1, 2
copy(s2, s1)
fmt.Println(s2) //[1 2] 目標slice len不夠時,只填滿len
s5 := s1[1:4]
s5[0] = 10
s6 := s5[0:4] //不會報錯,因為cap為4,從底層取得最后一位
fmt.Println(s1, s5, s6, cap(s6)) //[1 10 3 4 5] [10 3 4] [10 3 4 5] 4
//刪除第三個元素
s7 := append(s1[:2], s1[3:]...)
fmt.Println(s7) //[1 10 4 5]
go切片操作
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關(guān)閱讀更多精彩內(nèi)容
- 在go語言中,copy函數(shù)針對切片進行復制操作,在底層中,內(nèi)存空間可以互相重疊,也可以相互獨立。 首先講一下數(shù)據(jù)空...
- 切片之間是不能直接比較的 一個nil值的切片沒有底層數(shù)組, len(), cap()都為0 切片賦值屬于引用傳遞 ...
- 2020-10-29更新 ??"切片是指向數(shù)組的指針"這句話是不對的。切片就是切片,有自己的屬性和方法,只是借用...
- 切片與動態(tài)數(shù)組 切片是圍繞著動態(tài)數(shù)組的概念構(gòu)建的,可以按需自動增長或縮小,還可以通過對切片再次切片來縮小一個切片的...