当前位置 博文首页 > Go语言map用法实例分析

    Go语言map用法实例分析

    作者:不是JS 时间:2021-02-13 09:02

    本文实例讲述了Go语言map用法。分享给大家供大家参考。具体分析如下:

    map 映射键到值:

    map 在使用之前必须用 make 来创建(不是 new);一个值为 nil 的 map 是空的,并且不能赋值。

    复制代码 代码如下:
    package main
    import "fmt"
    type Vertex struct {
        Lat, Long float64
    }
    var m map[string]Vertex
    func main() {
        m = make(map[string]Vertex)
        m["Bell Labs"] = Vertex{
            40.68433, 74.39967,
        }
        fmt.Println(m["Bell Labs"])
    }

     
    map 的文法跟结构体文法相似,不过键名是必须的。
    复制代码 代码如下:
    package main
    import "fmt"
    type Vertex struct {
        Lat, Long float64
    }
    var m = map[string]Vertex{
        "Bell Labs": Vertex{
            40.68433, -74.39967,
        },
        "Google": Vertex{
            37.42202, -122.08408,
        },
    }
    func main() {
        fmt.Println(m)
    }

     
    如果顶层类型只有类型名的话,可以在文法的元素中省略键名。
    复制代码 代码如下:
    package main
    import "fmt"
    type Vertex struct {
        Lat, Long float64
    }
    var m = map[string]Vertex{
        "Bell Labs": {40.68433, -74.39967},
        "Google":    {37.42202, -122.08408},
    }
    func main() {
        fmt.Println(m)
    }

     
    修改map:

    在 map m 中插入或修改一个元素:

    复制代码 代码如下:
    m[key] = elem

    获得元素:
    复制代码 代码如下:
    elem = m[key]

    删除元素:
    复制代码 代码如下:
    delete(m, key)

    通过双赋值检测某个键存在:
    复制代码 代码如下:
    elem, ok = m[key]

    如果 key 在 m 中, ok 是 true。 否则,ok 是 false 并且 elem 是 map 的元素类型的零值。

    同样的,当从 map 中读取某个不存在的键时,结果是 map 的元素类型的零值。

    复制代码 代码如下:
    package main
    import "fmt"
    func main() {
        m := make(map[string]int)
        m["Answer"] = 42
        fmt.Println("The value:", m["Answer"])
        m["Answer"] = 48
        fmt.Println("The value:", m["Answer"])
        delete(m, "Answer")
        fmt.Println("The value:", m["Answer"])
        v, ok := m["Answer"]
        fmt.Println("The value:", v, "Present?", ok)
    }

    希望本文所述对大家的Go语言程序设计有所帮助。

    js
    下一篇:没有了