我知道我可以用 m
迭代 map
for k, v := range m { ... }
并寻找一个键,但是有没有更有效的方法来测试一个键在 map 中的存在?
最佳答案
一行答案:
if val, ok := dict["foo"]; ok {
//do something here
}
说明:
Go 中的if
语句可以包含条件语句和初始化语句。上面的示例同时使用了这两种方法:
初始化两个变量 -
val
将从映射中接收“foo”的值或“零值”(在本例中为空字符串)和ok
将收到一个 bool 值,如果 map 中实际存在“foo”,则该 bool 值将设置为true
评估
ok
,如果 "foo"在 map 中,则为true
如果映射中确实存在“foo”,则将执行 if
语句的主体,并且 val
将在该范围内。
关于dictionary - 如何检查 map 是否包含Go中的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2050391/