Golang 数组和切片
在Golang中,数组和切片有以下区别:
- 数组的长度是固定的,而切片的长度是动态的。
- 数组可以是多维的,而切片只有一维。
- 数组值类型,切片是引用类型。
- 数组大小在定义时就固定,而切片的大小可以动态增长。
以下是Golang中数组和切片的一些基本操作:
- 定义数组和切片
//定义数组
var arr [5]int
//定义切片
var s1 []int
//定义并初始化数组
arr1 := [5]int{1, 2, 3, 4, 5}
//定义并初始化切片
s2 := []int{1, 2, 3, 4, 5}
- 访问数组和切片的元素
//访问数组元素
fmt.Println(arr1[4])
//访问切片元素
fmt.Println(s2[3])
- 向数组和切片添加元素
//向数组添加元素
arr1 = append(arr1, 6) // 这将会报错,因为数组的长度是固定的
//向切片添加元素
s2 = append(s2, 6) // 这将会动态增加切片的长度
- 创建数组和切片的长度和容量
//创建数组的长度和容量
arr2 := make([]int, 5, 10) // 创建了一个长度为5,容量为10的切片
//创建切片的长度和容量
s3 := make([]int, 5, 10) // 创建了一个长度为5,容量为10的切片
- 数组和切片作为函数参数
//数组作为函数参数
func printArray(arr [5]int) {
fmt.Println(arr)
}
//切片作为函数参数
func printSlice(s []int) {
fmt.Println(s)
}
- 数组和切片的遍历
//数组的遍历
for i := 0; i < len(arr1); i++ {
fmt.Println(arr1[i])
}
//切片的遍历
for i := 0; i < len(s2); i++ {
fmt.Println(s2[i])
}
- 使用range关键字遍历
//数组的遍历
for _, v := range arr1 {
fmt.Println(v)
}
//切片的遍历
for _, v := range s2 {
fmt.Println(v)
}
以上就是Golang中数组和切片的基本操作和使用方法。
评论已关闭