go语言切片类型初始化(go切片用不用初始化)

切片类型的介绍

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小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年5月2日 上午1:37
下一篇 2023年5月2日 上午1:38

猜你喜欢