go切片窥探

go切片窥探

切片(slice)是对数组一个连续片段的引用(该数组我们称之为相关数组,通常是匿名的),所以切片是一个引用类型(因此更类似于C/C++中的数组类型,或者Python中的list类型)。这个片段可以是整个数组,或者是由起始和终止索引标识的一些项的子集。需要注意的是,终止索引标识的项不包括在切片内。切片提供了一个相关数组的动态窗口。

切片是可索引的,并且可以由 len() 函数获取长度。

给定项的切片索引可能比相关数组的相同元素的索引小。和数组不同的是,切片的长度可以在运行时修改, 最小为 0 最大为相关数组的长度: 切片是一个 长度可变的数组。

切片提供了计算容量的函数cap(),可以测量切片最长可以达到多少

它等于切片的长度 + 数组除切片之外的长度

如果 s 是一个切片, cap(s) 就是从 s[0] 到数组末尾的数组长度。

切片的长度永远不会超过它的容量, 所以对于 切片 s 来说该不等式永远成立:

0 <= len(s) <= cap(s)

多个切片如果表示同一个数组的片段,它们可以共享数据;因此一个切片和相关数组的其他切片是共享存储的, 相反,不同的数组总是代表不同的存储。 数组实际上是切片的构建块。

因为切片是引用, 所以它们不需要使用额外的内存并且比使用数组更有效率, 所以在 Go 代码中 切片比数组更常用。

©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值