Go语言map用法实例分析

2018-10-15 17:08

阅读:463

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


评论


亲,登录后才可以留言!