【Go 简明手册】Go基本语法——切片
一般而言,Go 语言的切片比数组更加灵活,强大而且方便。数组是按值传递的(即是传递的副本),而切片是引用类型,传递切片的成本非常小,而且是不定长的。而且数组是定长的,而切片可以调整长度。创建切片的语法如下:
make([ ]Type, length, capacity)
make([ ]Type, length)
[ ]Type{}
[ ]Type{value1, value2, ..., valueN}
内置函数 make()
用于创建切片、映射和通道。当用于创建一个切片时,它会创建一个隐藏的初始化为零值的数组,然后返回一个引用该隐藏数组的切片。该隐藏的数组与 Go 语言中的所有数组一样,都是固定长度,如果使用第一种语法创建,那么其长度为切片的容量 capacity
;如果是第二种语法,那么其长度记为切片的长度 length
。一个切片的容量即为隐藏数组的长度,而其长度则为不超过该容量的任意值。另外可以通过内置的函数 append()
来增加切片的容量。切片可以支持以下操作:
我们练习下,创建源文件 slice_array.go
,输入以下代码:
1 |
|
以上代码中,我们首先创建了一个数组,数组的长度是由 Go 语言自动计算出的(省略号语法),然后通过切片操作从数组 a
中创建了切片 s1
,接着我们修改了该切片的第一个位置的数值,然后发现数组 a
中的值也发生了变化。最后我们通过 make()
函数创建了一个切片,该切片的长度和容量分别为 10 和 20,还可以发现 Go 语言将未初始化的项自动赋予零值。运行代码输出如下:
1 |
|
【Go 简明手册】Go基本语法——切片
https://hodlyounger.github.io/2023/10/27/B_Code/GO/Go简明手册/Go语言基础/切片/【Go简明手册】切片/