欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Go学习笔记之Map

程序员文章站 2022-12-21 15:14:34
Go学习笔记之Map Map 引用类型,哈希表。map的key必须可以比较相等,除了slice, map, function的内建类型都可以作为key。struct类型不包含上述字段,也可作为key。 map的操作 1.创建一个map。 1 m := map[int]struct{ 2 name s ......

go学习笔记之map

map 引用类型,哈希表。map的key必须可以比较相等,除了slice, map, function的内建类型都可以作为key。struct类型不包含上述字段,也可作为key。

map的操作

1.创建一个map。

1 m := map[int]struct{
2     name string
3     age int     
4 }{
5     1: {"user1", 10},
6     2: {"user2", 20},
7 }
8 fmt.println(m)

2.使用make创建。这里map为空。

m := make(map[string]int)  //map[key]value,m == empty

3.或者定义一个map,这里map为nil。

var m map[string]int  // m == nil

2.获取元素

1.使用value, ok := map[key]来判断是否存在key.

2.使用delete删除元素。

m := map[string]int{
    "a": 1,  
}

if v, ok := m["a"]; ok{  //判断key是否存在
    println(v)
}else{
    println("not exist")
}

println(m["c"])   //对于不存在的key, 直接返回\0,不会报错

m["b"] = 2  //新增或修改

delete(m, "c")    //删除,若key不存在,不会报错

println(len(m))  //获取键值对数量,cap 无效

 

map的遍历

不能保证迭代返回的次序。

m := map[string]string {
    "name": "ccmouse",
    "course": "golang",
    "site": "imooc",
}
fmt.println("traversing map")
for k,v := range m {
    fmt.println(k, v)
}

输出:
course golang
site imooc
name ccmouse