跳到主要内容

Go语言的range

提示
  1. 使用 range 进行迭代:在 Go 语言中,range 结合 for 循环用于遍历数组、字符串或映射(map)的元素。
  2. 数组和字符串的 range 迭代:使用 range 遍历数组时,它返回数组的索引和对应的元素;而在字符串中,它返回每个字符的索引和字符本身。
  3. 映射的 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

在每次迭代中,循环遍历映射的键值对。

迭代科目分数
1Java80
2Python81
3Golang85

要了解更多关于映射的信息,请访问 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"