返回介绍

切片类型

发布于 2024-10-12 12:51:48 字数 1013 浏览 0 评论 0 收藏 0

切片描述了底层数组的一个连续片段并提供对连续片段内元素的访问。切片类型表示元素类型的数组的所有切片的集合。没有被初始化的切片用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文