我知道我可以在地图迭代m的,
m
for k, v := range m { ... }
并寻找钥匙,但是有没有更有效的方法来测试地图中钥匙的存在?
我在语言规范中找不到答案。
一线回答:
if val, ok := dict["foo"]; ok { //do something here }
ifGo中的语句可以同时包含条件和初始化语句。上面的示例同时使用:
if
初始化两个变量- val将从映射中接收“ foo”的值或从“零值”(在这种情况下为空字符串)ok接收值,并且将收到一个布尔值,true如果在映射中实际存在“ foo” ,则该布尔值将设置为
val
ok
true
计算ok,true如果“ foo”在地图中,则为
如果映射中确实存在“ foo”,if则将执行该语句的主体,并且该主体在该val作用域内是本地的。