Map 引用类型,哈希表。map的key必须能够比较相等,除了slice, map, function的内建类型均可以做为key。struct类型不包含上述字段,也可做为key。golang
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为空。spa
m := make(map[string]int) //map[key]value,m == empty
3.或者定义一个map,这里map为nil。code
var m map[string]int // m == nil
2.获取元素blog
1.使用value, ok := map[key]来判断是否存在key.string
2.使用delete删除元素。it
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 无效
不能保证迭代返回的次序。io
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