切片的创建方式现知道的有下面几种方式,切片为指针类型,从数组中得到的切片修改元素值时,原数组也会发生变化(数组为非指针类型)
package main import "fmt" func main() { //1.类型自动推导 s:=[]int{1,2,3,4} fmt.Println(s, len(s), cap(s)) //2.借助make函数,格式为:make(切片类型,切片长度,切片容量) s1:=make([]int,5,10) fmt.Println(s1, len(s1), cap(s1)) //3.借助make函数,格式为:make(切片容量,切片长度) s2:=make([]int,5) fmt.Println(s2, len(s2), cap(s2)) //这种情况切片容量与切片长度相等 //4.通过现成的数组(或者切片)进行创建 a:=[5]int{1,2,3,4,5} s3:=a[1:3:5] fmt.Println(s3, len(s3), cap(s3)) }
//将整个数组截取为切片可以这样写
s4:=a[:]
下面是缩写含义
![](https://img2018.cnblogs.com/blog/604844/201811/604844-20181112172453092-1766552508.jpg)
切片的append方法,当切片没有容量时,append的容量会成倍增长,假设append时容量不够,当时容量为8,则扩容以后的容量为16