Menu
CoddyTech

遍历映射

本课属于 Coddy GO 学习旅程的“基础知识”单元。第 92 课,共 109 课。

range 关键字可以让你遍历映射中的所有键值对。对于每个条目,它都会返回键和值。

创建一个水果库存映射:

inventory := map[string]int{
    "apples": 5,
    "bananas": 8,
    "oranges": 12,
}

for fruit, quantity := range inventory {
    fmt.Printf("%s: %d\n", fruit, quantity)
}

结果显示每个键值对:

apples: 5
bananas: 8
oranges: 12

Go 不保证 range 遍历映射条目的顺序,因此每次运行循环时,这些行的顺序都可能不同。

如果你只需要键,可以省略第二个变量:

for fruit := range inventory {
    fmt.Println(fruit)
}
challenge icon

挑战

入门

在这个挑战中,你将练习在 Go 中使用 range 关键字遍历映射。已经为你创建了一个学生成绩映射。你的任务是遍历这个映射,并打印每位学生的姓名和成绩。

补全代码,遍历 studentGrades 映射,并按照以下格式打印每位学生的姓名和成绩:Student: [name], Grade: [grade]

亲手试试

package main

import (
	"fmt"
	"sort"
)

func main() {
	// 存储学生成绩的映射
	studentGrades := map[string]string{
		"Alice":  "A",
		"Bob":    "B",
		"Charlie": "B+",
		"David":  "A-",
		"Eva":    "C",
	}

	// 将学生姓名(键)收集到切片中,以便排序
	var names []string
	for name := range studentGrades {
		names = append(names, name)
	}
	sort.Strings(names)


	// TODO:遍历排序后的学生姓名列表
	// 并按以下格式打印每个学生的姓名和成绩:
	// "Student: [name], Grade: [grade]"
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Go 在线编译器