Golang循环语句:for、range
1. for 循环
for 循环是一种常用的循环语句,其语法格式如下:
for initialization; condition; post {
// 循环体
}
其中,initialization 是循环的初始化语句,condition 是循环条件语句,post 是循环后处理语句,循环体为需要重复执行的代码块。
for 循环的执行过程如下:
- 执行 initialization 语句;
- 判断 condition 是否为 true,如果为 true,则执行循环体,否则跳出循环;
- 执行 post 语句;
- 重复执行第二步。
需要注意的是,循环条件语句可以省略,此时相当于 for true,可以无限循环下去。另外,initialization 和 post 语句也可以省略,此时相当于一个 while 循环。
例如,计算 1 到 10 的和:
sum := 0
for i := 1; i <= 10; i++ {
sum += i
}
fmt.Println(sum)
输出结果为:
55
2. range 循环
range 循环是一种针对数组、slice、map、字符串等可迭代数据类型的循环语句,其语法格式如下:
for index, value := range collection {
// 循环体
}
其中,index 表示当前迭代的索引,value 表示当前迭代的值,collection 表示迭代的集合,可以是数组、slice、map 等。
range 循环的执行过程如下:
- 按顺序迭代 collection 中的每个元素;
- 将当前元素的索引赋值给 index,当前元素的值赋值给 value;
- 执行循环体;
- 重复执行第一步,直到迭代完所有元素。
例如,遍历一个数组:
arr := [3]int{1, 2, 3}
for i, v := range arr {
fmt.Println(i, v)
}
输出结果为:
0 1
1 2
2 3
需要注意的是,range 循环还可以用于遍历 map 中的键值对:
dict := map[string]int{"a": 1, "b": 2, "c": 3}
for k, v := range dict {
fmt.Println(k, v)
}
输出结果为:
a 1
b 2
c 3
以上就是对 Golang 循环语句 for 和 range 的详解,希望对你有所帮助。