GO学习Map的使用
Map的使用 package main import "fmt" func main() { /* map:映射,是一种专门用于存储键值对的集合,属于引用类型 存储的特点: A:存储的是无序的键值对 B:键不能重复,并且和value值一一对应。 map中key不能重复,如果重复,那么新的value会覆盖原来的,程序不会报错. 语法结构: 1.创建map var map1 map[key类型]value类型 nil map,无法直接使用 var map2 = make(map[key类型]value类型) var map3 = map[key类型]value类型{key:value,key:value,key:value...} 2.添加/修改 map[key]=value 如果key存在,就可以修改数据 如果key不存在,就是添加数据 3.获取 map[key]-->value value,ok :=map[key] 根据key获取对应的value 如果key存在,value就是对应的数据,ok为true 如果key不存在,value就是值类型的默认值,ok为false 4.删除数据: delete(map,key) 如果key存在,就可以直接删除 如果key不存在,删除失败 5.长度: len() 每种数据类型: int:0 float:0.0-->0 string:"" array:[00000] sliece:nil map:nil */ //1.创建map var map1 map[int]string var map2 = make(map[int]string) var map3 = map[string]int{"Go":98,"Python":87,"Java":79,"Heml":93} fmt.Println(map1) fmt.Println(map2) fmt.Println(map3) fmt.Println(map1 == nil) fmt.Println(map2 == nil) fmt.Println(map3 == nil) //map1[1] ="hello" //panic: assignment to entry in nil map //2.nil map if map1 == nil{ map1 = make(map[int]string) fmt.Println(map1 == nil) } //3.存储键值对到map中 //map1[key] = value map1[1] ="hello" map1[2] ="world" map1[3] ="ruby" map1[4] ="" //4.获取数据,根据key获取对应的value值 //根据key获取对应的value,如果key存在,获取数值,如果key不存在,获取的是value值类型的零值 fmt.Println(map1) fmt.Println(map1[3])//根据key为3,获取对应的value值 fmt.Println(map1[33])//"" //判断key/value是否存在 v1,ok := map1[33] if ok{ fmt.Println("对应的数值是:",v1) }else{ fmt.Println("操作的key不存在,获取到的是零值:",v1) } //5.修改数据 fmt.Println(map1) map1[2] = "虚空" fmt.Println(map1) //6.删除数据 delete(map1,3) fmt.Println(map1) //删除不存在的键 delete(map1,33) fmt.Println(map1) //7.长度 fmt.Println(len(map1)) }
运行输出: map[] map[] map[Go:98 Heml:93 Java:79 Python:87] true false false false map[1:hello 2:world 3:ruby 4:] ruby 操作的key不存在,获取到的是零值: map[1:hello 2:world 3:ruby 4:] map[1:hello 2:虚空 3:ruby 4:] map[1:hello 2:虚空 4:] map[1:hello 2:虚空 4:] 3 Process finished with exit code 0
读完点个赞,给我的坚持更新注入新的活力。
2022.05.21 日更 73/365 天
公众号:3天时间
往期同类文章:
GO学习 深拷贝和浅拷贝
GO学习 数组上创建切片
GO学习 slice
GO学习 多维数组
GO学习 Array类型和排序
GO学习 Array