笔记 - 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 协议》,转载必须注明作者和本文链接