检查键是否存在
本课属于 Coddy GO 学习旅程的“基础知识”单元。第 89 课,共 109 课。
在 Go 中,你可以使用双值赋值形式检查键是否存在于映射中。这一点很重要,因为访问不存在的键会返回零值,这可能会造成误导。
创建一个国家代码映射:
countries := map[string]string{
"US": "United States",
"CA": "Canada",
}
// 检查 "UK" 是否在映射中
value, exists := countries["UK"]
fmt.Println("Value:", value, "Exists:", exists)结果:
Value: Exists: falseexists 布尔值会告诉你是否找到了这个键。在条件语句中使用它:
if _, exists := countries["US"]; exists {
fmt.Println("US is in the map")
}结果:
US is in the map挑战
入门在这个挑战中,你将练习检查映射中是否存在某个键。你有一个学生成绩映射,需要检查映射中是否存在某个学生的成绩。
补全代码,检查成绩映射中是否存在学生 'Emma',并打印相应的消息。
亲手试试
package main
import "fmt"
func main() {
// 学生成绩映射表
grades := map[string]int{
"John": 85,
"Sarah": 92,
"Mike": 78,
"Lisa": 95,
}
// 要检查的学生
studentToCheck := "Emma"
// TODO: 检查 studentToCheck 是否存在于 grades 映射表中
// 并将结果存入名为 'exists' 的变量
// 提示:使用 comma-ok 惯用写法
// 输出结果
if exists {
fmt.Printf("%s's grade exists in the map\n", studentToCheck)
} else {
fmt.Printf("%s's grade does not exist in the map\n", studentToCheck)
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Go 在线编译器