笔记 - map
map 的定义
map 是 Go 中的内置类型,它将一个值与一个键关联起来。可以使用相应的键检索值。
Map 是一种无须的键值对的集合,Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引, 指向数据的值。我们无法决定它的返回顺序,这是因为 Map 是使用 Hash 表来实现的,也是引用类型
使用 Map 注意的几点:- map 是无序的,每次打印出来的 map 都会不一样,它不能通过 index 获取,必须通过 key 获取
- map 的长度是不固定的,也就是和 slice 一样,也是一种引用类型
- 内置的 len 函数同样适用 map, 返回 map 拥有 key 的数量
- map 的 key 可以是所有可比较的类型,如:bool、整数型、浮点型、复杂型、字符串型…
map 的使用
// 声明 var map1 map[int]string // 没有初始化, nil的map 【不能再次赋值】 var map2 = make(map[int]string) // 创建 不为nil var map3 = map[string]int{"Go":98, "Java":70} // 不为nil // 每中数据类型: // int:0 float:0 string:"" array: [0000]\ // slice nil // map nil map1[1] = "hello" // error fmt.Println(map1 ==nil) fmt.Println(map2 ==nil) fmt.Println(map3 ==nil) // 3、存储键值对到map中 map1[1] = "helo" map1[2] = "world" map1[3] = "meta" map1[4] = "wang" map1[5] = "xiao" fmt.Println(map1) //无序的 fmt.Println(map[4]) // wang fmt.Println(map[40]) // "" 取的是默认值 value, ok := map[key] // 该key值是否存在 // 修改数据 map1[3] = "修改" // 删除数据 根据key 删除 delete(map1, 3) fmt.Println(map1) //无序的 len(map1)
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: