Menu
CoddyTech

检查键是否存在

本课属于 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: false

exists 布尔值会告诉你是否找到了这个键。在条件语句中使用它:

if _, exists := countries["US"]; exists {
    fmt.Println("US is in the map")
}

结果:

US is in the map
challenge icon

挑战

入门

在这个挑战中,你将练习检查映射中是否存在某个键。你有一个学生成绩映射,需要检查映射中是否存在某个学生的成绩。

补全代码,检查成绩映射中是否存在学生 '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)
	}
}
quiz icon自我测试

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

基础知识中的所有课

自己练习: Go 在线编译器