Golang中Slice切片如何使用
更新时间:2023-11-29什么是Slice切片?
在Golang中,Slice切片是动态数组的一种扩展,并且是在数组的基础上封装的一种类型,可以动态地调整容量。Slice切片由三部分组成:指针、长度和容量。指针指向第一个元素,长度表示切片中元素的个数,容量表示切片的容量大小。
package main import "fmt" func main() { // 创建一个长度为3,容量为5的切片 slice := make([]int, 3, 5) fmt.Println(slice) fmt.Printf("切片的长度为:%d,容量为:%d", len(slice), cap(slice)) }
以上代码将会创建一个长度为3,容量为5的一个整型切片,并输出切片的内容、长度和容量。
Slice切片的使用
定义一个Slice切片,可以用两种方式:
- 使用make()函数创建
- 直接使用一个数组或一个已存在的Slice切片来创建
对于已经创建好的Slice切片,可以利用索引值进行访问和修改。
package main import "fmt" func main() { // 创建一个长度为3,容量为5的切片 slice1 := make([]int, 3, 5) fmt.Println(slice1) // 直接使用一个数组或一个已存在的Slice切片创建 arr := []int{1, 2, 3} slice2 := arr[1:] fmt.Println(slice2) // 访问和修改 slice2[0] = 10 fmt.Println(slice2) }
以上代码将会输出切片的内容,并且使用索引进行修改值。
Slice切片的追加和删除元素
在Golang中,利用append()函数可以向切片中添加元素,并且可以同时添加多个元素。另外,在切片中删除元素时,可以使用append()函数和“...”来完成。
package main import "fmt" func main() { // 追加元素 slice1 := []int{1, 2, 3} slice1 = append(slice1, 4, 5, 6) fmt.Println(slice1) // 删除元素 slice2 := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} slice2 = append(slice2[:3], slice2[6:]...) fmt.Println(slice2) }
以上代码将会输出在切片中添加元素后的内容和删除后的内容。
总结
Golang中的Slice切片是动态数组的一种扩展,并且是在数组的基础上封装的一种类型,可以动态地调整容量。定义Slice切片,可以使用两种方式:使用make()函数创建和直接使用一个数组或一个已存在的Slice切片来创建。对于已经创建好的Slice切片,可以利用索引值进行访问和修改。在切片中添加元素可以使用append()函数,删除元素可以使用append()函数和“...”来完成。
Golang中的Slice切片在使用它时需要注意它的底层引用了一个数组,因此改变切片的元素也会改变底层数组的元素。此外,当切片容量不足时,会自动扩容,因此会带来一些额外的开销。不过,Slice切片的优点也非常明显:方便、高效、简洁。