Golang数组和切片

Golang大约 1200 字

数组

func main() {
    // 创建数组,指定长度
    // 类型为[5]int
    var arr1 [5]int
    arr1[0] = 1
    fmt.Println(arr1)

    arr2 := [5]int{1, 2, 3, 4, 5}
    fmt.Println(arr2)

    // key value方式,指定索初始化
    var arr3 = [5]string{3: "third", 4: "last"}
    fmt.Println(arr3)

    arr4 := [...]int{11, 12, 13, 14, 15}
    fmt.Println(arr4)

    arr5 := [...]string{3: "aaa", 4: "xxx"}
    fmt.Println(arr5)

    // 创建数组,new
    // 类型为*[5]int
    var arr6 = new([5]int)
    arr6[0] = 3
    fmt.Println(arr6)
}

切片

func main() {

    // 根据数组获取切片
    arr := [...]int{1, 2, 3,4,5}
    // 获取与数组等长的切片
    s := arr[:]
    // [1 2 3 4 5]
    fmt.Println(s)

    // 等同于前一个方式,直接获取与数组等长的切片
    slice1 := []int{6, 7, 8, 9, 10}
    // [6 7 8 9 10]
    fmt.Println(slice1)

    // 按索引初始化
    slice2 := []string{5: "eee", 2: "bbb"}
    // [  bbb   eee]
    fmt.Println(slice2)
    // 6
    fmt.Println(len(slice2))
    // 6
    fmt.Println(cap(slice2))

    // 长度为5,容量为10
    ints := make([]int, 5, 10)
    fmt.Println(ints)
    // 5
    fmt.Println(len(ints))
    // 10
    fmt.Println(cap(ints))

    var ar = [10]int{0,1,2,3,4,5,6,7,8,9}
    var a = ar[10:]
    // 0
    fmt.Println(len(a))
    // 0
    fmt.Println(cap(a))

}
阅读 34 · 发布于 2020-11-04

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看换一批