【Go】Go 语言教程--GO语言切片(Slice)(十四)
发布人:shili8
发布时间:2024-12-22 04:31
阅读次数:0
**Go语言教程 -- GO语言切片(Slice)**在 Go语言中,切片是最常用的数据结构之一。它是一种动态数组,可以根据需要增长或缩小。切片的长度可以随着元素的添加或删除而改变。
### 切片的定义和初始化切片的定义非常简单,只要使用 `[]` 来表示即可:
govar mySlice []int
上面的代码创建了一个空切片,类型为 `[]int`。如果你想在声明时直接赋值一些元素,可以这样写:
gomySlice := []int{1,2,3}
这会创建一个长度为3 的切片,包含三个整数。
### 切片的长度和容量切片有两个重要的属性:长度(`len()`)和容量(`cap()`)。长度表示切片中元素的数量,而容量则是切片可以容纳的最大元素数量。
gomySlice := []int{1,2,3} fmt.Println(len(mySlice)) // 输出:3fmt.Println(cap(mySlice)) // 输出:3mySlice = append(mySlice,4) fmt.Println(len(mySlice)) // 输出:4fmt.Println(cap(mySlice)) // 输出:4
在上面的例子中,我们先创建一个长度为3 的切片,然后使用 `append()` 将一个新元素添加到切片末尾。切片的长度增加到了4,而容量也随之增加到了4。
### 切片的增长和缩小切片可以通过 `append()` 来增长,或者通过 `make()` 或 `copy()` 来缩小。
gomySlice := []int{1,2,3} fmt.Println(len(mySlice)) // 输出:3// 使用 append() 增长切片mySlice = append(mySlice,4) fmt.Println(len(mySlice)) // 输出:4// 使用 make() 缩小切片newSlice := make([]int,2) copy(newSlice, mySlice[:2]) fmt.Println(len(newSlice)) // 输出:2
在上面的例子中,我们先创建一个长度为3 的切片,然后使用 `append()` 将一个新元素添加到切片末尾。切片的长度增加到了4。
接着,我们使用 `make()` 创建一个新的切片,长度为2,然后使用 `copy()` 将原切片的前两个元素复制到新切片中。新切片的长度变成了2。
### 切片的遍历切片可以通过下标来遍历。
gomySlice := []int{1,2,3} for i := range mySlice { fmt.Println(mySlice[i]) }
在上面的例子中,我们使用 `range` 遍历切片,输出每个元素的值。
### 切片的排序切片可以通过 `sort()` 来排序。
gomySlice := []int{3,2,1} sort.Ints(mySlice) fmt.Println(mySlice) // 输出: [123]
在上面的例子中,我们先创建一个长度为3 的切片,然后使用 `sort.Ints()` 来排序。切片的元素按从小到大的顺序排列。
### 总结本文介绍了 Go语言中的切片(Slice),包括其定义、初始化、长度和容量、增长和缩小、遍历和排序等方面。切片是 Go语言中最常用的数据结构之一,能够根据需要增长或缩小,是一个非常灵活的数据结构。