首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >go -检查一个地图的键是否存在于另一个地图中

go -检查一个地图的键是否存在于另一个地图中
EN

Stack Overflow用户
提问于 2016-07-18 19:40:13
回答 1查看 12.7K关注 0票数 0

我有一本字典

代码语言:javascript
复制
a = {1:11, 2:22}

我想检查a中是否存在b中的密钥

代码语言:javascript
复制
b = {3:33, 1:11}

我如何在Go语言中做到这一点?

我是这样做的:

代码语言:javascript
复制
a:= make(map[string][]string)
a["1"] = append(a["1"], "11")
a["1"] = append(a["1"], "22")

我有一个dict b为:

代码语言:javascript
复制
b:= make(map[string]string)
b["1"] = "11"

我怎样才能检查这个?本质上,我想检查来自b的密钥1是否存在于a中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-18 20:10:22

您可以使用go惯用方法来检查键的存在:

代码语言:javascript
复制
if _, ok:= b[key]; ok

示例:

代码语言:javascript
复制
var (
    a = map[string]int{
        "alpha": 34, "bravo": 56, "charlie": 23,
        "delta": 87, "echo": 56, "foxtrot": 12, "golf": 34, "hotel": 16,
        "indio": 87, "juliet": 65, "kilo": 43, "lima": 98}

    b = map[string]int{
        "alpha": 34, "one": 56, "charlie": 23,
        "insdio": 87, "julietta": 65, "kilo": 43, "lima": 98}
)

func main() {
    for key, _ := range a {
        if _, ok:= b[key]; ok {         
            fmt.Printf("%s\n", key)
        }
    }   
}

Playground Example 1

或者,您可以检查第一个映射中的键值是否与第二个映射中的值对应:

代码语言:javascript
复制
for key, val := range a {
    if val == b[key] {          
        fmt.Printf("%s\n", key)
    }
}

Playground Example 2

但第一个是惯用的方式。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38435810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档