映射是一种数据结构,用于存储一系列无序的键值对。
注:
1.map内部使用Hash表
2.除了slice,map,function的内建类型都可以作为map的key
3.struct类型不包含上述字段,也可作为key
创建和初始化
使用make声明map
m := make(map[string]int) //创建一个map,key的类型为string,value的类型为int
使用映射字面量声明
m := map[string]string{ "name": "taylor", //:前为key,:后为value "record": "red", "old": "29", "year": "1989", }
声明空映射和nil映射
m := make(map[string]int) //空映射 m := map[string]int{} //空映射 var m map[string]int //nil映射
使用映射
获取元素
key := m["name"] //Go语言中即使map的键不存在也会返回一个值,这个值为对应类型的零值
为映射赋值
m := map[string]int{} //创建一个空映射 m["NO"] = 99 //将键"NO"加入到map
从映射获取值并判断键是否存在
//Go语言中即使map的键不存在也会返回一个值,这个值为对应类型的零值 // if name, ok := m["name"]; ok { fmt.Println(name) } else { fmt.Println("key does not exist") }
遍历map
//map内部使用Hash表,不保证遍历顺序 // for k, v := range m { fmt.Println(k, v) }
使用delete从map中删除一项
delete(m, "name")
map在函数间的传递
map在函数间传递时并不会制造副本,是引用传递。
- 本文固定链接: https://weiguangli.com/archives/278
- 转载请注明: lwg0452 于 Weiguang的博客 发表
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!