Go语言map用法实例分析


本文向大家介绍Go语言map用法实例分析,包括了Go语言map用法实例分析的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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语言程序设计有所帮助。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#yiidian.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。