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语言程序设计有所帮助。