一尘不染

如何检查地图是否包含 Go 中的键?

go

我知道我可以通过以下方式遍历地图m

for k, v := range m { ... }

并寻找一把钥匙,但有没有更有效的方法来测试钥匙在地图中的存在?


阅读 356

收藏
2021-10-18

共1个答案

一尘不染

回答:

if val, ok := dict["foo"]; ok {
    //do something here
}

解释:

ifGo 中的语句可以包括条件语句和初始化语句。上面的例子同时使用了:

  • 初始化两个变量 -val将从地图中接收“foo”的值或“零值”(在这种情况下为空字符串),ok并将接收一个布尔值,true如果“foo”实际上存在于地图中,它将被设置为
  • 评估oktrue如果“foo”在地图中

如果“foo”确实存在于映射中,则if语句的主体将被执行并且val在该范围内是本地的。

2021-10-18