当前位置:实例文章 » 其他实例» [文章]GO学习之切片操作

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 关键字进行遍历。

其他信息

其他资源

Top