go 構造切片slice

定義切片
make([]int, 5)  長度和容量均爲5
make([]int, 0, 5) 長度爲0 容量爲0
切片
slice2[3:5] 對slice2進行切片返回 第3 4 兩個元素 不包含index=5這個元素
----------------------------------------------------------------------
package main

import "fmt"

func main() {
    var z []int
    if z == nil {
        fmt.Println("is nil")
    } else {
        fmt.Println("not nil", z)
    }

    //按容量建立切片 並初始化數據爲0
    slice1 := make([]int, 5)
    printSlice("slice1", slice1)

    //最大容量爲5初始化長度爲0
    slice2 := make([]int, 0, 5)
    printSlice("slice2", slice2)
    //容量爲slice2 =5 長度爲3
    slice3 := slice2[:3]
    printSlice("slice3", slice3)
    //append 追加數據後 超出容量5 增加至5*2=10 ,append後長度爲6
    slice3 = append(slice3, 1)
    slice3 = append(slice3, 3)
    slice3 = append(slice3, 9)
    slice3 = append(slice3, 1)
    slice3 = append(slice3, 3,9,10)
    printSlice("slice3", slice3)

    slice4 := slice2[3:5]
    printSlice("slice4", slice4)

    //返回index=3-8 1 3 9 1 3 9
    slice5 := slice3[3:9]
    //slice3 進行切片,因容量是10 切片到index=9 返回3-9的元素 因此正確 slice3[3:11]會報錯由於容量爲10
    slice6 := slice3[3:10]
    printSlice("slice5", slice5)
    printSlice("slice5", slice6)
}

func printSlice(a string, x []int) {
    fmt.Println()
    fmt.Printf("%s ,len = %d,cap = %d,val = %v", a, len(x), cap(x), x)
}
----------------------------------------------------------------------

go語言開發交流qq羣 857263711app

保持進步
但願每一個人都能找到本身喜歡的方式生活、工做。開發

相關文章
相關標籤/搜索