go切片操作

    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]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容