Golang学习笔记6——slice

2017-10-22  本文已影响14人  MarksGui

1.slice 概述

2.创建 slice

//使用:make([]T, len, cap)
//len便是存数的元素个数,cap表示容量

s1 := make([]int, 3, 6) //指定len、cap,底层数组初始化为零值
s2 := make([]int, 3)    //省略cap,和len相等
s3 :=[]int{1, 2, 5:3}   //按初始化元素分配底层数组,并设置len、cap

var s1 []int          //nil切片
s2 := make([]int, 0)  //空切片
s3 := []int{}         //空切片
不管是nil切片还是空切片,可以对其调用内置函数appen、len、cap

func main() {
    a := []int{0,1,2,3,4,5,6,7,8}
    s1 := a[1:4]
    s2 := a[3:5]
    s1[2] = 10
    fmt.Println(a)
    fmt.Println(s1)
    fmt.Println(s2)
}

3.reslice 概述(slice的切片操作)

s1 := []int{1,2,3,4,5}
s2 := s1[1:]            //reslice操作

4.append()与slice

s1 := []int{0, 1}
s2 := append(s1, 2)

5.copy()与slice

//此处表示a拷贝进b里面,所以b变为1,2,3
func main() {
    a := []int{1,2,3,4}
    b := []int{5,6,7}
    copy(b, a)
    fmt.Println(a, b)
}
//把a的第一个元素,拷贝到b的第二个元素上
func main() {
    a := []int{1,2,3,4}
    b := []int{5,6,7}
    copy(b[1:2], a[0:1])
    fmt.Println(a, b)
}
上一篇 下一篇

猜你喜欢

热点阅读