乐趣区

关于后端:一步一步带你学习go今天要讲的内容是Map

以下所有内容将可在 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]string

webMap['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 分钟后的实战课程。

退出移动版