go语言学习 - 数组

golang

数组声明

数组就是数据的集合,声明时候需要指定数据长度和类型,之后不能修改

1
2
3
var arr [5]int16
// 打印 [0,0,0,0,0] 默认值
fmt.Println(arr)

数组在内存中是多个连续的地址

数组赋值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 声明后赋值,索引操作
var arr [5]int16
arr[0] = 10
fmt.Println(arr)

// 声明并赋值
var arr1 = [5]string{"a", "s", "d", "f", "g"}
fmt.Println(arr1)

// ...会自动匹配长度
var arr2 = [...]string{"a", "s", "d", "f", "g", "p"}
fmt.Println(arr1)

// 给特定索引赋值
var arr3 = [...]string{0: "we", 2: "are", 4: "young"}
fmt.Println(arr1)

数组切片

数组[start:end],取前不取后

1
2
3
4
5
6
7
8
9
10
11
12
var arr4 = [5]int16{1, 2, 3, 4, 5}
s := arr4[1:3]
// [2,3]
fmt.Println(s)

s := arr4[:3]
// [1,2,3]
fmt.Println(s)

s := arr4[1:]
// [2,3,4,5]
fmt.Println(s)

数组遍历

数组遍历推荐用range函数

1
2
3
4
5
6
7
8
9
// 遍历数组
for i := 0; i < len(arr1); i++ {
fmt.Println(i, arr1[i])
}

// range遍历
for i, v := range arr2 {
fmt.Println(i, v)
}