GO学习之切片操作
发布人:shili8
发布时间:2024-12-26 11:18
阅读次数:0
**GO 学习之切片操作**
在 Go语言中,切片(slice)是最常用的数据结构之一。它是一种动态数组,能够根据需要进行扩展或缩减。切片的操作非常方便和高效。在本文中,我们将详细介绍切片的基本概念、创建方式、长度和容量、切片的赋值和比较、切片的遍历等方面。
### 切片的基本概念切片是 Go语言中的一个重要数据结构,它是一种动态数组。切片可以根据需要进行扩展或缩减,能够存储任意类型的元素。切片的长度(len)和容量(cap)是两个非常重要的属性。
### 切片的创建方式切片有两种创建方式:一是使用内置函数 `make()` 来创建一个新的切片;二是使用切片表达式来创建一个新的切片。
#### 使用 make() 函数创建切片
gopackage mainimport "fmt" func main() { // 使用 make() 函数创建一个长度为5、容量为10 的切片 s := make([]int,5,10) fmt.Println("len(s) =", len(s)) // 输出:5 fmt.Println("cap(s) =", cap(s)) // 输出:10// 使用 append() 函数追加元素到切片中 s = append(s,1,2,3,4,5) fmt.Println("len(s) =", len(s)) // 输出:10 fmt.Println("cap(s) =", cap(s)) // 输出:10}
#### 使用切片表达式创建切片
gopackage mainimport "fmt" func main() { // 使用切片表达式创建一个长度为5、容量为0 的切片 s := []int{1,2,3,4,5} fmt.Println("len(s) =", len(s)) // 输出:5 fmt.Println("cap(s) =", cap(s)) // 输出:5// 使用 append() 函数追加元素到切片中 s = append(s,6,7,8) fmt.Println("len(s) =", len(s)) // 输出:8 fmt.Println("cap(s) =", cap(s)) // 输出:8}
### 切片的长度和容量切片的长度(len)是指切片中元素的数量,容量(cap)是指切片可以容纳的最大元素数。切片的长度和容量都是可变的,可以根据需要进行扩展或缩减。
gopackage mainimport "fmt" func main() { // 使用 make() 函数创建一个长度为5、容量为10 的切片 s := make([]int,5,10) fmt.Println("len(s) =", len(s)) // 输出:5 fmt.Println("cap(s) =", cap(s)) // 输出:10// 使用 append() 函数追加元素到切片中 s = append(s,1,2,3,4,5) fmt.Println("len(s) =", len(s)) // 输出:10 fmt.Println("cap(s) =", cap(s)) // 输出:10// 使用 append() 函数追加元素到切片中,超过容量后会自动扩容 s = append(s,6,7,8) fmt.Println("len(s) =", len(s)) // 输出:13 fmt.Println("cap(s) =", cap(s)) // 输出:14}
### 切片的赋值和比较切片可以使用赋值运算符(:=)进行赋值,也可以使用等于运算符(==)进行比较。
gopackage mainimport "fmt" func main() { // 使用 make() 函数创建一个长度为5、容量为10 的切片 s1 := make([]int,5,10) s2 := []int{1,2,3,4,5} // 使用赋值运算符(:=)进行赋值 s1 = s2 fmt.Println("s1 =", s1) // 输出: [12345] // 使用等于运算符(==)进行比较 if s1 == s2 { fmt.Println("s1 和 s2 相等") } else { fmt.Println("s1 和 s2 不相等") } }
### 切片的遍历切片可以使用 range 关键字进行遍历。
gopackage mainimport "fmt" func main() { // 使用 make() 函数创建一个长度为5、容量为10 的切片 s := []int{1,2,3,4,5} // 使用 range 关键字进行遍历 for i, v := range s { fmt.Printf("下标:%d,值:%d ", i, v) } }
### 总结切片是 Go语言中的一个重要数据结构,它是一种动态数组,可以根据需要进行扩展或缩减。切片的长度和容量是两个非常重要的属性,可以使用 make() 函数创建切片,也可以使用切片表达式创建切片。切片可以使用赋值运算符(:=)进行赋值,也可以使用等于运算符(==)进行比较。切片可以使用 range 关键字进行遍历。