首页 > 编程开发 > Go语言 > Go内建容器之映射(map)
2019
03-14

Go内建容器之映射(map)

映射是一种数据结构,用于存储一系列无序的键值对。

注:

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在函数间传递时并不会制造副本,是引用传递。

 

最后编辑:
作者:lwg0452
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

留下一个回复

你的email不会被公开。