Golang 切片

2025年4月1日 | 3 分钟阅读

在 Go 中,切片是底层数组的动态大小的分段视图。该段可以是整个数组或数组的子集。我们通过指示起始和结束索引来定义数组的子集。切片为底层数组提供了一个动态窗口。

切片数据类型示例

输出

[4 6 8]

切片就像对数组的引用。 切片不存储任何数据。 如果我们更改数组的元素,它也会修改底层数组。 如果其他切片引用相同的底层数组,它们的值也会被更改。

切片就像数组引用。下面给出一个切片的例子

输出

[John Jim Jack jen]
[John Jim] [Jim Jack]
[John ZZZ] [ZZZ Jack]
[John ZZZ Jack jen]

切片字面量

切片字面量就像没有长度的数组字面量。下面给出一个没有长度的切片的例子

输出

[{1 true} {2 false} {3 true} {4 true} {5 false} {6 true}]

省略下限或上限

在切片中,我们可以省略下限或上限。零是下限或上限的默认值。

输出

[8 10]
[2 4 8]
[8 10 12 14]
[2 4 8 10 12 14]

切片长度和容量

切片具有长度和容量。 长度是存储元素的数量,容量是从切片开始计算的底层数组的元素数量。

要获取长度,我们使用 len(slice) 函数,要获取容量,我们使用 cap(slice) 函数。

输出

length =7 capacity=7 [2 4 6 8 10 12 14]
length =0 capacity=7 []
length =4 capacity=7 [2 4 6 8]
length =5 capacity=5 [6 8 10 12 14]

切片 Make 函数

我们也可以借助 make 函数创建切片。 make 函数创建一个零大小的数组并返回数组的切片。

输出

slice length=10 capacity=10 [0 0 0 0 0 0 0 0 0 0]
slice1 length=0 capacity=10 []
slice2 length=5 capacity=10 [0 0 0 0 0]
slice3 length=3 capacity=8 [0 0 0]
 
下一个主题Golang-命令行参数