Golang 如何检查一个键是否存在于Map中
我们知道 Go 中的 Map 包含键值对。在很多情况下,我们会想知道某个键是否存在于Map中,在这种情况下,我们有两种选择。
- 第一种方法是非常幼稚的,因为在这种方法中,我们基本上是在 范围 子句的帮助下遍历Map,然后将每个键与我们想检查的键进行比较,以确定是否存在。
-
而第二种方法要好一些,因为我们使用了带有一点语法糖的 if 语句。
让我们先检查一下天真的方法的作用。
例子1
考虑一下下面的代码。
在上面的代码中。
- 我们声明了一个名为 m 的Map,它包含 字符串 数据类型的键和 整数 数据类型的 值 。
-
然后我们在 for 循环中使用 range 子句来遍历Map中的所有键,在这个循环中,我们遍历这些键,然后将每个键与我们要检查的键进行比较。
不建议使用上述方法,因为Map的大小可能会更大,这反过来又会增加解决方案的时间复杂性。
输出
如果我们用命令 go run main.go 运行上述代码,那么我们将在终端得到以下输出。
一个更好的方法是使用 if 语法来检查Map中是否存在一个特定的值。
例2
考虑一下下面的代码。
在上面的代码中。
- 我们只是使用了 if 条件,然后检查值,就像我们从数组中获取一个值一样。
-
但我们没有传递索引,而是传递了键,然后结果将被存储在名为 ok 的变量中 。
-
然后,我们将 ok 条件与之相加,如果键存在,那么我们将得到结果,否则我们将得到 “它不存在”。
输出
如果我们用命令 go run main.go 来运行上述代码,那么我们将在终端得到以下输出。