📅  最后修改于: 2023-12-03 15:01:00.194000             🧑  作者: Mango
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中键值存在的函数会让代码更加简洁易懂。