golang切片长度与容量指的是什么
导读:本文共2299字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 在golang中,切片长度就是切片中元素的数量;切片容量是从创建切片的索引开始的底层数组中元素的数量,即从切片的第一个元素开始数,到其底层数组元素末尾的个数。切片的长度与容量是可以计算的,内置方法len()可获取长度,cap()可获取容量;在使用切片... ...
目录
(为您整理了一些要点),点击可以直达。
在golang中,切片长度就是切片中元素的数量;切片容量是从创建切片的索引开始的底层数组中元素的数量,即从切片的第一个元素开始数,到其底层数组元素末尾的个数。切片的长度与容量是可以计算的,内置方法len()可获取长度,cap()可获取容量;在使用切片的过程中,如果使用append()让切片的长度大于了切片的容量,那么切片的容量会以双倍的形式自动扩容。
Go 语言 的 切片 拥有长度和容量。
切片的长度是切片中元素的数量
切片的容量是从创建切片的索引开始的底层数组中元素的数量,即从它的第一个元素开始数,到其底层数组元素末尾的个数。
切片是可索引的,并且可以由len()方法获取长度,切片提供了计算容量的方法cap(),可以测量切片最长可以达到多少。我们在使用切片的过程中,如果使用 append 使切片的长度大于了切片的容量,那么切片的容量会以双倍的形式自动扩容。
切片实际的是获取数组的某一部分,len切片<=cap切片<=len数组
cap()的结果决定了切片截取的注意细节
运行结果:
由此可以看到,在初始时,切片长度为0,在添加元素后,实际长度为6
证明数组是值类型,切片是引用类型的例子:
运行结果:
从运行结果可以看到,z的改变影响到了y的值,说明切片是引用类型。
slice没有自己的任何数据,它只是底层数组的一个引用,对slice所做的任何修改都将反映在底层数组中数组是值类型,而切片是引用类型
运行结果:
由结果我们可以看到,切片的截取只能生成切片,如果内容不够截取,会从底层数组给出后面的值。如果长度不够,会报错。
判断一个切片是否为空,如果直接使用nil来判断,是不准确的。
Golang允许len为0但是cap不为0,或者两者都为的0的切片,所以一般通过len获取切片长度来判断是否为空切片,而不是直接将切片和nil做直接的比较。
golang切片长度与容量指的是什么的详细内容,希望对您有所帮助,信息来源于网络。