Go语言map用法实例分析
2015-02-25 15:28
891 查看
map 映射键到值:
map 在使用之前必须用 make 来创建(不是 new);一个值为 nil 的 map 是空的,并且不能赋值。
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 中插入或修改一个元素:
获得元素:
复制代码 代码如下: elem = m[key]
删除元素:
复制代码 代码如下: delete(m, key)
通过双赋值检测某个键存在:
复制代码 代码如下: elem, ok = m[key]
如果 key 在 m 中, ok 是 true。 否则,ok 是 false 并且 elem 是 map 的元素类型的零值。
同样的,当从 map 中读取某个不存在的键时,结果是 map 的元素类型的零值。
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语言接口用法实例分析
- GO语言Defer用法实例分析
- GO语言映射(Map)用法分析
- Go语言中slice的用法实例分析
- Go语言中的switch用法实例分析
- Go语言中的range用法实例分析
- Go语言轻量级线程Goroutine用法实例
- GO语言文件的创建与打开实例分析
- Go语言的管道Channel用法实例
- go语言template用法实例
- GO语言标准错误处理机制error用法实例
- Go语言共享内存读写实例分析
- Go语言排序与接口实例分析
- Go语言中错误处理实例分析
- Go语言中struct的匿名属性特征实例分析
- Go语言中append函数用法分析
- Go语言中常量定义方法实例分析
- go语言中if语句用法实例