duanbo2048 2010-01-12 16:18
浏览 23
已采纳

如何在Go中检查地图是否包含密钥?

I know I can iterate over a map m by,

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

and look for a key but is there a more efficient way of testing a key's existence in a map?

I couldn't find the answer in the language spec.

  • 写回答

9条回答 默认 最新

  • duanhaodi4809 2010-01-12 16:48
    关注

    One line answer:

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

    Explanation:

    if statements in Go can include both a condition and an initialization statement. The example above uses both:

    • initializes two variables - val will receive either the value of "foo" from the map or a "zero value" (in this case the empty string) and ok will receive a bool that will be set to true if "foo" was actually present in the map

    • evaluates ok, which will be true if "foo" was in the map

    If "foo" is indeed present in the map, the body of the if statement will be executed and val will be local to that scope.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?