Go语言map用法实例分析
本文实例讲述了Go语言map用法。分享给大家供大家参考。具体分析如下:
map映射键到值:
map在使用之前必须用make来创建(不是new);一个值为nil的map是空的,并且不能赋值。
packagemain import"fmt" typeVertexstruct{ Lat,Longfloat64 } varmmap[string]Vertex funcmain(){ m=make(map[string]Vertex) m["BellLabs"]=Vertex{ 40.68433,74.39967, } fmt.Println(m["BellLabs"]) }
map的文法跟结构体文法相似,不过键名是必须的。
packagemain import"fmt" typeVertexstruct{ Lat,Longfloat64 } varm=map[string]Vertex{ "BellLabs":Vertex{ 40.68433,-74.39967, }, "Google":Vertex{ 37.42202,-122.08408, }, } funcmain(){ fmt.Println(m) }
如果顶层类型只有类型名的话,可以在文法的元素中省略键名。
packagemain import"fmt" typeVertexstruct{ Lat,Longfloat64 } varm=map[string]Vertex{ "BellLabs":{40.68433,-74.39967}, "Google": {37.42202,-122.08408}, } funcmain(){ fmt.Println(m) }
修改map:
在mapm中插入或修改一个元素:
m[key]=elem
获得元素:
elem=m[key]
删除元素:
delete(m,key)
通过双赋值检测某个键存在:
elem,ok=m[key]
如果key在m中,ok是true。否则,ok是false并且elem是map的元素类型的零值。
同样的,当从map中读取某个不存在的键时,结果是map的元素类型的零值。
packagemain import"fmt" funcmain(){ m:=make(map[string]int) m["Answer"]=42 fmt.Println("Thevalue:",m["Answer"]) m["Answer"]=48 fmt.Println("Thevalue:",m["Answer"]) delete(m,"Answer") fmt.Println("Thevalue:",m["Answer"]) v,ok:=m["Answer"] fmt.Println("Thevalue:",v,"Present?",ok) }
希望本文所述对大家的Go语言程序设计有所帮助。