📌  相关文章
📜  go map check key exists - Go 编程语言 - Go 编程语言(1)

📅  最后修改于: 2023-12-03 15:01:00.194000             🧑  作者: Mango

Go编程语言中的Map—— 检查键是否存在

Map是Go语言中的关键数据结构。Map用于存储键值对(key-value pair)的无序集合,其中 Key必须是唯一的,而Value可以是重复的。Map是一种引用类型,声明Map类型的方式为:map[key] value。

检查Map中的Key是否存在

在Go语言中,可以使用 value, ok := map[key] 语法来检查一个Map中的Key是否存在。当ok为true时,表示Map中包含该Key,当ok为false时,表示Map中不包含该Key。

m := map[string]string{"one": "a", "two": "b", "three": "c"}

if value, ok := m["three"]; ok {
	fmt.Println(value)
} else {
	fmt.Printf("key %q is not found\n", "three")
}

if value, ok := m["four"]; ok {
	fmt.Println(value)
} else {
	fmt.Printf("key %q is not found\n", "four")
}

返回的结果如下所示:

c
key "four" is not found

通过函数封装实现检查Map中的Key是否存在

我们将以上功能进行封装,封装后的函数功能为检查Map中的Key是否存在,如果存在返回该Key对应的Value,如果不存在,则返回默认值。

func CheckKeyExists(m map[string]string, key string, defaultvalue string) string {
	if value, ok := m[key]; ok {
		return value
	} else {
		return defaultvalue
	}
}

m := map[string]string{"one": "a", "two": "b", "three": "c"}
fmt.Println(CheckKeyExists(m, "three", "default"))
fmt.Println(CheckKeyExists(m, "four", "default"))

返回的结果如下所示:

c
default

总结:在Go语言中检查Map中的键是否存在非常简单,只需要使用value, ok := map[key] 语句即可。如果你经常使用Map,封装一个检查Map中键值存在的函数会让代码更加简洁易懂。