11、切片操作

package main

import "fmt"

func main() {

    // slice 添加元素
    arr := [...]int{1,2,3}

    // 因为arr定义时已经固定好 length 跟 capacity,所以添加元素只能另起一个数组
    arr1 := append(arr[:],4) // 第一个参数是slice,第二个是新增元素
    arr2 := append(arr1,5)
    // 必须接收 append 的返回值

    fmt.Println(arr1)
    fmt.Println(arr2)

    // 简单实例
    var s []int // 初始化一个slice,此时 s == nil

    for i := 1; i <= 100; i++ {
        s = append(s, 2*i+1)
    }
    fmt.Println(s)

    // 简单创建 slice
    s1 := []int{1,2,3}
    fmt.Println(s1)

    // make 方法创建 slice
    s2 := make([]int,10) //新建slice,长度10,容量默认等于长度
    s3 := make([]int,10,32) //新建slice,长度10,容量32
    fmt.Println("元素:",s2,"长度:",len(s2),"容量:",cap(s2))
    fmt.Println("元素:",s3,"长度:",len(s3),"容量:",cap(s3))

    // copy 方法复制 slice
    copy(s2,s1) // 将s1 复制到 s2里面去
    fmt.Println(s2) // [1 2 3 0 0 0 0 0 0 0]

    // 删除 slice 里面的元素(如将2删掉)
    s2 = append(s2[:1],s2[2:]...)
    fmt.Println(s2)

    // 删除头部
    s2 = s2[1:]

    // 删除尾部
    s2 = s2[:len(s2)-1]

    fmt.Println(s2)
}

 

posted @ 2021-11-20 15:55  JaydenQiu  阅读(47)  评论(0)    收藏  举报