Go语言中的切片
//创建一个长度和容量都是0 的切片
//创建一个空切片的3种方式
//第一种:创建nil整型切片
var slice []int
fmt.Println(cap(slice))
//第二种:使用make创建整型切片
slice1 := make([]int,0)
fmt.Println(cap(slice1))
//第三种:使用切片字面量来创建空切片
slice2 := []int{}
fmt.Println(cap(slice2))
空切片在底层数组中包含0个元素,也没有分配任何存储空间。想表示空集合时空切片很有用,例如,数据查询返回0个查询结果时。
使用切片
切片之所以叫做切片,是因为创建一个新切片就是把底层数组切出一部分。
//切片的真谛
miller_slice := []int{10,20,30,40,50}
new_miller_slice = miller_slice[1:3] //长度为2,容量为4
需要注意的是现在两个切片共享一个底层数据。如果一个切片修改了该底层数组的共享部分,另一个切片也能感知到。
切片市有额外的容量的,但是如果不能把这个容量合并到切片的长度里,这些容量就没有用处。好在可以用Go语言的内置函数append来做这种合并很容易。