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

本文Go语言map用法实例分析到此结束。不论你的生活如何卑微,你要应对它生活,不要躲避它,更别用恶言咒骂它。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
浅析go中的map数据结构字典

详解Go中Map类型和Slice类型的传递

详解 Go 语言中 Map 类型和 Slice 类型的传递

Golang map如何生成有序的javascripton数据详解

Go语言字典(map)用法实例分析【创建,填充,遍历,查找,修改,删除】