数组
2022-02-26 大约 2 分钟
数组的格式定义:
var 数组名 [数组大小]数据类型
# 创建数组
func main() {
// 第一种:数组长度确定
var arr1 [3]int = [3]int{3, 6, 9}
fmt.Println(arr1) // [3 6 9]
// 第二种:
var arr2 = [3]int{1, 4, 7}
fmt.Println(arr2) // [1 4 7]
// 第三种:数组长度不确定
var arr3 = [...]int{4, 5, 6, 7}
fmt.Println(arr3) // [4 5 6 7]
// 第四种:指定具体位置的具体值。
var arr4 = [...]int{2: 66, 0: 33}
fmt.Println(arr4) // [33 0 66]
// 第五种:声明一个长度为5int类型的数组:
var scores [5]int
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[...]
可以当数组长度不确定时使用。
# 添加元素
数组大小是不能改变的,如果需要可改变的话,可以用slice,提供append可以添加,超出大小可以自动扩容。
func main() {
// 声明一个长度为5 int类型的数组:
var scores [5]int
scores[0] = 95
scores[1] = 90
scores[2] = 23
scores[3] = 10
scores[4] = 2
fmt.Println(scores) // [95 90 23 10 2]
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 删除元素
Go语言并没有提供用于删除元素的语法或接口,而是通过利用切片本身的特性来删除元素。
# 数组的遍历
# for 循环
// 声明一个长度为int类型的数组:
var scores = [...]int{95, 90, 23, 10, 1}
// 求和
sum := 0
for i := 0; i < len(scores); i++ {
sum += scores[i]
}
fmt.Println("和为:", sum) // 和为: 219
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# range 循环
// 声明一个长度为5int类型的数组:
var scores = [...]int{95, 90, 23, 10, 1}
// 求和
sum := 0
for _, value := range scores {
sum += value
}
fmt.Println("和为:", sum) // 和为: 219
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- scores 就是你要遍历的数组。
- 每次遍历得到的索引用key接收,每次遍历得到的索引位置上的值用value接收。
- key, value的名字随意起名。当key不需要使用时可以用
_
替代。- key, value属于这个循环中的局部变量。