【问题标题】:How is mapping done internally in golang? [duplicate]golang内部是如何映射的? [复制]
【发布时间】:2016-06-30 12:06:17
【问题描述】:

这里是具体例子

func main(){    
m := make(map[string]int)  
m["k1"] = 7  

_, prs := m["k2"]   
fmt.Println(prs)  
}

"_" 在这里表示什么?
休息对我来说很清楚。

【问题讨论】:

    标签: go


    【解决方案1】:

    _ 表示您不关心这个特定的返回值。

    访问地图索引会产生 2 个值:

    • 该索引的值,或值类型的零值
    • 一个布尔值,指示某个值是否在该索引处

    在您的情况下,prs 将是布尔值。

    这种模式经常这样使用:

    if _, found := m[key]; !found {
        // Do something here to handle the fact that there is nothing at the index `key`
    }
    

    Map 是 Go 中的一种特殊类型,第二个值是可选的,所以如果你不关心 map 中是否有东西,你不必检查它。

    【讨论】:

      【解决方案2】:

      dokumentation。您的声明:

      _, prs := m["k2"]
      

      同时做两件事。 A)检查映射中是否存在键/值,B)检索该值。 “prs”是一个布尔值,指示键“k2”的值是否存在。

      因此,如果您想检查映射中是否存在键/值并且不关心使用该值,则可以使用“_”忽略该值并且只使用“prs”布尔值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-31
        • 1970-01-01
        • 2020-05-26
        • 1970-01-01
        • 2020-09-30
        • 1970-01-01
        相关资源
        最近更新 更多