golang学习-切片

1、切片定义

切片:是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。和数组比较来说,非常灵活,支持自动扩容。

切片是引用类型。

切片只是定义没有扩容,默认值是nil。

切片包含三个信息:底层数组的指针、切片的长度(len)、切片的容量(cap)

func main() {
	//切片声明
	//第一种方法
	var arr1 []int
	fmt.Print(arr1)
	//第二种方法
	var arr2 = []int{1, 2, 3, 4}
	fmt.Println(arr2)
	//第三种方法
	arr3 := []int{0: 1, 1: 2}
	fmt.Println(arr3)
	// 基于数组定义切片
	a := [5]int{1, 2, 3, 4, 5}
	b := a[:] //获取数组里面的所有值
	fmt.Println(b)
}
2、切片的循环遍历 

参考数组的循环遍历。

3、切片的长度和容量

长度:所包含元素的个数。(len)

容量:从它的第一个元素开始数,到其底层数组元素末尾的个数。(cap)

	f := []int{1, 2, 3, 4, 5}
	g := f[1:3]
	fmt.Printf("长度是%d,容量是%d", len(g), cap(g))
4、使用make()函数创建切片  

 make(类型,长度,容量)

	sliceA := make([]int, 4, 8) //默认值[0,0,0,0]
	//修改切片数据
	sliceA[0] = 100
	fmt.Println(sliceA)
5、append()方法

golang中不能通过下标的方式给切片扩容,要使用append()方法 

6、copy()函数
复制切片(参考js深拷贝)

你可能感兴趣的:(golang学习,学习)