0
点赞
收藏
分享

微信扫一扫

go语言切片

静悠 2022-01-09 阅读 156

介绍一下Go语言的切片


(一)切片产生背景

	数组大小限定长度限定并且不可以进行扩容,在固定的条件下非常局限
	切片可以实现对数组的动态切割,可以进行切割、裁剪

(二)切片的定义

(1)使用未知长度的数组

	var 切片名 []切片类型
 例如:
 	// 定义一个数组
	atemp := [11]int{1, 2, 3, 4, 5, 6, 9, 8, 7, 0}
	// 声明切片,并初始化
	var a []int = atemp[:]
	a1 := atemp[3:]
	a2 := atemp[:6]

(2)使用make进行初始化

make类似于new的作用,但是又有一些不同:
	new(T) 为每个新的类型T分配一片内存,初始化为 0 并且返回类型为*T的内存地址:这种方法 
		返回一个指向类型为 T,值为 0 的地址的指针,它适用于值类型如数组和结构体;它相当于 &T{}。
	make(T) 返回一个类型为 T 的初始值,它只适用于3种内建的引用类型:切片、map 和 channel

初始化方法:
	a:=make(参数1,参数2,参数3)
		参数1:切片类型
		参数2:切片长度
		参数3:切片的容量
		判断一个切片是否满了可以用len()测试切片长度、cap()测试切片容量
		如果切片内的容量满了切片会进行加倍扩容,每次扩大后的容量是原来的两倍
	切片有容量与长度这一概念与数组有本质的区别
 初始化切片并进行扩容(扩容是自动的)
	b := make([]int, 3, 5)
	//append函数参数第一个是目标切片,后来的是加入的参数列表
	//下例将1,2,3加入切片内(加入三次)
	b = append(b, 1, 2, 3)
	b = append(b, 1, 2, 3)
	b = append(b, 1, 2, 3)

(三)空切片初始值为nil

	空切片声明方式:
		var a[]int

在这里插入图片描述


简短的切片,GO GO GO !

举报

相关推荐

0 条评论