课程进度 27% · 第7/23章第7/23章 · 标签 1/4
— 1 —
数组基础
数组是定长、同类型元素的序列,声明时需指定长度。
go
1
// 声明数组
2
var arr1 [3]int // [0 0 0]
3
var arr2 = [3]int{1, 2, 3}
4
arr3 := [...]string{"Go", "Python", "Java"}
5
6
// 访问和修改
7
arr2[0] = 10
8
fmt.Println(arr2[1]) // 2
9
10
// 遍历数组
11
for i, v := range arr2 {
12
fmt.Println(i, v)
13
}
- 数组长度是类型的一部分,[3]int和[4]int不同类型
- 数组是值类型,赋值和传参会复制整个数组
数组声明遍历值类型
— 2 —
切片基础
切片是对数组的抽象,长度可变,更常用。
go
1
// 声明切片
2
var s1 []int // nil切片
3
s2 := []int{1, 2, 3} // 字面量
4
s3 := make([]string, 2) // 长度为2的字符串切片
5
6
// 访问和修改
7
s2[0] = 10
8
fmt.Println(s2[1]) // 2
9
10
// 遍历切片
11
for i, v := range s2 {
12
fmt.Println(i, v)
13
}
- 切片本身不存储数据,底层依赖数组
- 切片是引用类型,赋值和传参不会复制底层数据
切片makenil引用类型