当前位置:实例文章 » 其他实例» [文章]【golang中的切片的相关知识点】[ ] slice

【golang中的切片的相关知识点】[ ] slice

发布人:shili8 发布时间:2025-01-12 09:38 阅读次数:0

**Go语言中的切片**

在 Go语言中,切片(slice)是最常用的数据结构之一。它是一种引用类型,底层使用数组来存储元素。切片的长度可以动态变化,而不像数组那样固定大小。

### 切片的定义和初始化切片的定义非常简单:

govar s []int

这行代码创建了一个空切片 `s`,类型为 `[]int`。切片可以使用 `make()` 函数来初始化:
gos := make([]int,5)

这行代码创建了一个长度为5 的切片 `s`,初始值均为0。

### 切片的长度和容量切片有两个重要属性:长度(len)和容量(cap)。长度表示切片中元素的数量,而容量则表示切片所能容纳的最大元素数。
gos := make([]int,5)
fmt.Println(len(s)) // 输出:5fmt.Println(cap(s)) // 输出:5

### 切片的索引和访问切片支持类似数组一样的索引和访问方式:
gos := []int{1,2,3}
fmt.Println(s[0]) // 输出:1fmt.Println(s[1]) // 输出:2

### 切片的追加和删除切片支持追加新元素和删除旧元素的操作:
gos := []int{1,2,3}
s = append(s,4) // 追加新元素fmt.Println(s) // 输出: [1234]
s = s[:len(s)-1] // 删除最后一个元素fmt.Println(s) // 输出: [123]

### 切片的切分和连接切片支持切分和连接操作:
gos := []int{1,2,3}
t := s[:len(s)/2] // 切分前半部分u := s[len(s)/2:] // 切分后半部分fmt.Println(t) // 输出: [12]
fmt.Println(u) // 输出: [3]
s = append(t, u...) // 连接切片fmt.Println(s) // 输出: [123]

### 切片的遍历切片支持使用 `range` 关键字进行遍历:
gos := []int{1,2,3}
for i, v := range s {
 fmt.Printf("索引:%d 值:%d
", i, v)
}
// 输出:
// 索引:0 值:1// 索引:1 值:2// 索引:2 值:3

### 切片的复制切片支持使用 `copy()` 函数进行复制:
gos := []int{1,2,3}
t := make([]int, len(s))
copy(t, s)
fmt.Println(t) // 输出: [123]

### 切片的比较切片支持使用 `==` 和 `!=` 运算符进行比较:
gos := []int{1,2,3}
t := []int{1,2,3}
u := []int{4,5,6}
fmt.Println(s == t) // 输出: truefmt.Println(s != u) // 输出: true

### 总结切片是 Go语言中最常用的数据结构之一。它支持动态长度和容量的变化,提供了类似数组一样的索引和访问方式,以及追加、删除、切分、连接等操作。切片还支持使用 `range` 关键字进行遍历和复制。切片的比较也非常方便,可以使用 `==` 和 `!=` 运算符进行比较。

其他信息

其他资源

Top