遍历映射
本课属于 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: 12Go 不保证 range 遍历映射条目的顺序,因此每次运行循环时,这些行的顺序都可能不同。
如果你只需要键,可以省略第二个变量:
for fruit := range inventory {
fmt.Println(fruit)
}挑战
入门在这个挑战中,你将练习在 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]"
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Go 在线编译器