Go语言的range
提示
- 使用 range 进行迭代:在 Go 语言中,
range
结合for
循环用于遍历数组、字符串或映射(map)的元素。 - 数组和字符串的 range 迭代:使用
range
遍历数组时,它返回数组的索引和对应的元素;而在字符串中,它返回每个字符的索引和字符本身。 - 映射的 range 迭代:在映射中使用
range
时,它迭代映射的键值对。也可以只使用range
来获取映射的键。
在 Go 语言中,我们使用 range
结合 for 循环来遍历数组、字符串或映射的元素。
在学习 range
之前,请确保你已经了解 Golang for 循环 的工作原理。
Go for range 与数组
我们可以使用 for range
循环来访问数组的个别索引和元素。例如,
// 使用 range 和数组的程序
package main
import "fmt"
func main() {
// 数字数组
numbers := [5]int{21, 24, 27, 30, 33}
// 使用 range 遍历数组元素
for index, item := range numbers {
fmt.Printf("numbers[%d] = %d \n", index, item)
}
}
输出
numbers[0] = 21
numbers[1] = 24
numbers[2] = 27
numbers[3] = 30
numbers[4] = 33
在上面的示例中,我们使用了 for range
for index, item := range numbers {
这里,range
关键字返回两个项:
- 数组索引:0、1、2 等等。
- 对应索引处的数组元素:21、24、27 等等。
要了解更多关于数组的信息,请访问 Golang 数组。
Golang 中的字符串 range
在 Go 中,我们也可以使用 for range
关键字与字符串一起使用,访问字符串的单个字符及其对应索引。例如,
// 使用 range 和字符串的程序
package main
import "fmt"
func main() {
string := "Golang"
fmt.Println("索引: 字符")
// i 访问每个字符的索引
// item 访问每个字符
for i, item := range string {
fmt.Printf("%d= %c \n", i, item)
}
}
输出
索引: 字符
0: G
1: o
2: l
3: a
4: n
5: g
在上面的示例中 ,我们使用了 for range
来访问字符串 Golang 的单个字符及其对应的索引。
要了解更多关于字符串的信息,请访问 Golang 字符串。
Go 中的 map for range
在 Go 中,我们也可以使用 for range
关键字与映射一起使用,以访问键值对。例如,
// 使用 range 和映射的程序
package main
import "fmt"
func main() {
// 创建一个映射
subjectMarks := map[string]float32{"Java": 80, "Python": 81, "Golang": 85}
fmt.Println("获得的分数:")
// 使用 for range 遍历键值对
for subject, marks := range subjectMarks {
fmt.Println(subject, ":", marks)
}
}
输出
获得的分数:
Java: 80
Python: 81
Golang: 85
在每次迭代中,循环遍历映射的键值对。
迭代 | 科目 | 分数 |
---|---|---|
1 | Java | 80 |
2 | Python | 81 |
3 | Golang | 85 |
要了 解更多关于映射的信息,请访问 Golang 映射。
使用 Go range 访问映射的键
我们也可以使用 for range
仅访问映射的键。例如,
// 仅检索映射键的程序
package main
import "fmt"
func main() {
// 创建一个映射
subjectMarks := map[string]float32{"Java": 80, "Python": 81, "Golang": 85}
fmt.Println("科目:")
for subject := range subjectMarks {
fmt.Println( subject)
}
}
输出
科目:
Java
Python
Golang
在这里,我们使用了 range
仅检索映射 subjectMarks 中的键 "Java"、"Python"、"Golang"。