以下所有内容将可在b站进行查阅并观看,如果你喜爱看视频的同学能够间接点击上面链接进入哔哩哔哩进行查看所有内容,视频内容看着在8-10分钟,每天学习一点点,提高亿点点。
https://www.bilibili.com/vide...
Map
之前的咱们说过咱们的数据类型有根底数据类型和复合数据类型,咱们曾经学习了数组。然而呢咱们在获取数组的元素的时候,你们有没有发现一个问题。咱们须要记住这个元素的下标是什么?就是咱们须要记录第几位是什么什么。
咱们会想到有没有这么一种形式解决这个问题,咱们晓得一个网站对应一个一个ip。一个网站又对应一个经营品牌。比方咱们的哔哩哔哩,咱们拜访哔哩哔哩的时候不可能间接在浏览器输出哔哩哔哩的服务器IP进行拜访,因为这个不好记,个别人都记不住。咱们是通过域名进行关联,让咱们能够疾速联想到bilibili.com就是咱们的哔哩哔哩网站。
Map这种数据类型和下面所说的栗子很相似。与数组比照咱们不必记哪些下标,就如同咱们的字典一样晓得这个拼音就能够查到那个字一样。所以Map在一些老面试官外面又叫“字典”。
Map 是一种汇合,所以咱们能够像迭代数组和切片那样迭代它。不过,Map 是无序的,咱们无奈决定它的返回程序,这是因为 Map 是应用 hash 表来实现的。
定义一个Map
var 变量 map[key的类型]汇合类型//通过make变量名 := make(map[key类型]汇合类型)
增加数据到Map中
var webMap = map[string]stringwebMap['bilibili'] = '哔哩哔哩'webMap['youtube'] = '油管'
获取Map中的值
webMap['bilibili'] //咱们能获取到哔哩哔哩
判断是否存在
bilibili, ok := countryCapitalMap [ "bilibili" ] /*如果确定是实在的,则存在,否则不存在 */ if (ok) { fmt.Println("bilibili 的首都是", bilibili) } else { fmt.Println("bilibili 的首都不存在") }
删除操作
咱们有时候须要对Map进行删除操作,须要通过delete进行操作
delete(map变量,删除的key)
Map遍历与数组大抵一样。
/* 打印网站 */ for webKey := range webMap { fmt.Println(web, "是", webMap [ webKey ]) }
Map联合数组构造体能够做切片性能,不过要等讲完构造体能力进行阐明,这里先理解一下
如果切片不相熟的话,要回去之前的课程进行查看
//定义构造体type Car struct { Brand string Age int} makeSplice := make(map[int][]Car)
如果大家还是有说看不到,能够观看视频中5分钟后的实战课程。