Go 如何判断map中是否有某个key?

比起遍历整个 map, 例如

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

有没有更好的写法?

2 Likes

试试这个

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

解释:

if 语句在Go语言中可以同时包含一个条件和一个初始声明 (:point_up_2:以上的例子)

  • 初始化两个变量 - val 的值可以是 dict 中的 “foo”, 或是空值, ok 为布尔值 (如果"foo"存在, ok为true)
  • Evaluate ok, 如果 “foo” 在map中则返回true.

所以如果"foo"在map中, 这个if statement 的 body 就会运行, val 会作为这个函数的 local value.

3 Likes

:clap: :clap:

哈哈,楼主这属于是自问自答了

:grinning: :grinning:

米粉或米农 :upside_down_face: