📌  相关文章
📜  golang 检查键是否在地图中 - Go 编程语言 - Go 编程语言(1)

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

Golang 检查键是否在地图中

当在 Golang 中使用 map 时,有时需要检查 map 中是否存在某个键。这可以通过使用两个值的返回语法来实现。下面是一个简单的例子:

package main

import "fmt"

func main() {
    myMap := make(map[string]int)
    myMap["foo"] = 42
    myMap["bar"] = 66

    // Check if key exists
    if val, ok := myMap["foo"]; ok {
        fmt.Println(val)
    } else {
        fmt.Println("key not found")
    }

    if val, ok := myMap["baz"]; ok {
        fmt.Println(val)
    } else {
        fmt.Println("key not found")
    }
}

输出结果为:

42
key not found

在上面的代码中,我们首先创建一个 map,然后向其中添加两个键值对。接下来,我们使用 if 语句和两个值的返回语法检查 map 中是否存在键值对。如果存在,则打印值。否则,打印 "key not found"。

注意,我们在 if 语句中使用了短变量声明语法来声明 valok 变量。val 变量将存储 map 中与给定键对应的值,而 ok 变量将存储布尔值,指示是否存在该键。

上面的例子演示了如何检查单个键,但实际上,我们也可以使用循环来检查多个键。以下是一个示例程序:

package main

import "fmt"

func main() {
    myMap := make(map[string]int)
    myMap["foo"] = 42
    myMap["bar"] = 66

    keys := []string{"foo", "baz", "bar"}

    for _, key := range keys {
        if val, ok := myMap[key]; ok {
            fmt.Printf("%s: %d\n", key, val)
        } else {
            fmt.Printf("%s: key not found\n", key)
        }
    }
}

输出结果为:

foo: 42
baz: key not found
bar: 66

在上面的代码中,我们定义了一个字符串切片,其中包含三个键。接下来,我们使用 for 循环遍历该切片,并在每次迭代中检查 map 中是否存在键。如果存在,则打印键值对,否则打印 "key not found"。

总之,通过使用两个值的返回语法,我们可以轻松检查 map 中是否存在单个或多个键。