文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
切片类型
切片描述了底层数组的一个连续片段并提供对连续片段内元素的访问。切片类型表示元素类型的数组的所有切片的集合。没有被初始化的切片用 nil 表示。
SliceType = "[" "]" ElementType .
与数组一样,切片的可以使用索引访问并且有长度,切片的长度可以通过内置的 len
函数获取;与数组不同的是它的长度在运行时是可以变化的。我们可以通过下标 0~len(s)-1
来访问切片内的元素。切片的索引可能会小于相同元素再底层数组的索引。
切片一旦初始化,那么就有一个与之对应的底层数组保存切片中的元素。切片和底层的数组还有其他指向该数组的切片共享相同的储存空间;而不同的数组总是有着不同的存储空间。
切片的底层数组可能会延伸到切片末尾以外,切片的容积等于切片现在的长度加上数组中切片还没使用的长度;可以从原始切片中切出一个长度与容量相等的切片。切片的容量可以通过内置的 cap(a)
函数来获取。可以通过函数 make
来创建一个 T 类型的新切片。
使用内置函数 make
可以出实话给定元素类型 T 的切片。 make
函数接收三个参数:切片类型、切片长度、切片容积,其中切片容积是可选参数。 make
创建的切片会在底层分配一个切片所引用的新数组。
make([]T, length, capacity)
make
的作用就是创建新数组并切分它,所以下面两种写法是等价的:
make([]int, 50, 100)
new([100]int)[0:50]
与数组相同,切片一般是一维的,不过也可以复合成多维。数组中的数组都必须是相同的长度,但是切片中的切片长度是动态变化的,不过切片中的切片需要单独初始化。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论