切片类型的介绍
在go语言中切片类型是非常强大的数据类型,它可以通过动态的方式来扩展数组,并且支持进行动态增删改查的操作。它可以看做是动态数组,是一个引用类型,由三个部分组成:指向底层数组的指针、切片访问的长度和切片处理区域的容量。切片类型的定义形式如下:
var slice []type
其中,type表示切片中存储的元素类型,为任意基础类型和自定义类型。通过这种方式,创建一个空的、可动态增长和缩小的切片。
切片类型的初始化
切片类型的初始化可以通过make()函数进行,其语法格式如下:
make([]T, len, cap)
其中,T表示切片中存储的元素类型,len表示切片的长度,cap表示切片容量。len和cap都是可选参数,如果不指定cap,那么创建的切片容量等于len,即可动态增长,但不可缩小。如果指定了cap,则表示底层数组的容量。
通过make()函数创建的切片都是初始化的,即切片中所有的元素都是类型的零值(数字类型的零值为0,布尔类型的零值为false,字符串类型的零值为空字符串,引用类型的零值为nil)。
初始化切片实例代码演示:
var slice1 []int = make([]int, 3, 5) //创建一个长度为3,容量为5的int类型切片 var slice2 = make([]string, 5) //创建一个长度为5,容量等于长度的string类型切片 slice3 := make([]bool, 0, 10) //创建一个长度为0,容量为10的bool类型切片
切片类型的赋值
切片可以通过重新分配底层数组来实现复制和赋值,下面是切片类型的赋值代码演示:
slice1 := []int{1, 2, 3} //创建一个包含元素1、2、3的int类型切片 slice2 := make([]int, 3, 3) //创建一个长度为3、容量为3的int类型切片 copy(slice2, slice1) //复制slice1的元素到slice2中 //输出slice2 [1 2 3] fmt.Println("slice2", slice2) slice3 := []int{4, 5, 6, 7} //创建一个包含元素4、5、6、7的int类型切片 slice4 := slice3[1:3] //得到slice3下标【1,3)的切片,即包含元素5、6的int类型切片 //输出slice4 [5 6] fmt.Println("slice4", slice4)
通过上述代码可以知道,切片之间的赋值可以通过切片实例的分割和复制来实现。切片值的赋值只是将底层数组的地址复制,指向同一个数组,所以修改一个切片的值会影响到另一个切片的值。
本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/golang-zxsjl.html
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及版权问题,且不对任何资源负法律责任。
如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。
如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!