1、map的操作:

1-1、创建:make(map[string]int):定义 Map,可以使用内建函数 make 也可以使用 map。
1-2、获取元素:m[key]
1-3、key不存在时,获得Value类型的初始值
1-4、用value,ok:=m[key]来判断是否存在key
1-5、用delete删除一个key

2、map的遍历:

2-1、使用range遍历key,或者遍历key,value对。
2-2、不保证遍历顺序,如需顺序,需手动对key排序。
2-3、使用len获取元素个数。

3、map的key:

3-1、map使用哈希表,必须可以比较相等。
3-2、除了slice,map,function的内建类型都可以作为key。
3-3、Struct类型不包含上述字段,也可作为key。

4、使用总结:

4-1、创建 make(map[string]int)
4-2、取值 value, ok := m[key]
4-3、删除 delete(m, key)

func mapFun()  {m := map[string]string{"name":"lili","course":"golang","site":"imooc","quality":"notbad",}m2 := make(map[string]int)var m3 map[string]intfmt.Println(m,m2,m3)  // map[course:golang name:lili quality:notbad site:imooc] map[] map[]fmt.Println("Traversing map")for i,v := range m {fmt.Println(i,v)   /*site imoocquality notbadname lilicourse golang*/}fmt.Println("Gotting values ____")courseName := m["course"]fmt.Println(courseName)      // golangcauseName, ok := m["coursq"]fmt.Println(causeName,ok)   //  falseif causeName,ok := m["cause"]; ok{fmt.Println(causeName)}else {fmt.Println("key does not exist")  //key does not exist}fmt.Println("Deleting values")name, ok := m["name"]   // 定义name 变量 :=fmt.Println(name,ok)    // lili truedelete(m,"name")name , ok = m["name"]  // 已定义name变量,可直接使用,不需要 :=fmt.Println(name,ok)    //  false}func main() {mapFun()}

5、例:寻找最长不含有重复字符都子串。

/*例:寻找最长不含有重复字符都子串。力扣中文版:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/description/力扣英文版:https://leetcode.com/problems/longest-substring-without-repeating-characters/description/1、对于每一个字母x:1-1、lastOccurred[x]不存在,或者< start  无需操作1-2、lastOccurred[x] >= start 更新start1-3、更新lastOccurred[x] ,更新maxLength*/func lengthOfNonRepeatingSubStr(s string) int {lastOccurred := make(map[rune]int)start := 0maxLength := 0for i,ch := range []rune(s) {if lastI,ok := lastOccurred[ch]; ok && lastI >= start {start = lastI + 1}if i - start + 1 > maxLength {maxLength = i - start + 1}lastOccurred[ch] = i}return  maxLength}func main() {fmt.Println(lengthOfNonRepeatingSubStr("abcabcabccc")) // 3fmt.Println(lengthOfNonRepeatingSubStr(""))   // 0fmt.Println(lengthOfNonRepeatingSubStr("b"))  // 1fmt.Println(lengthOfNonRepeatingSubStr("月黑见渔灯,孤光一点萤。")) // 12fmt.Println(lengthOfNonRepeatingSubStr("黑化肥挥发发灰会花飞灰化肥挥发发黑会飞花")) // 8}// 测试func sliceMapFun()  {arrStr := []string{"a","b","c","a","b","c","b","而","b","而"}var valStr []stringtempMap := map[string]byte{}for _,e := range arrStr{l := len(tempMap)tempMap[e] = 0if len(tempMap) != l {valStr = append(valStr,e)}}fmt.Println("valStr:",valStr)}func main() {sliceMapFun()   // valStr: [a b c 而]}

03 go语言_Map相关推荐

  1. JAVA学习笔记 03 - JAVA语言程序结构

    本文是Java基础课程的第三课.计算机语言的程序结构无外乎顺序结构.分支结构.循环结构,本文主要介绍Java语言中这些程序结构是如何实现的 文章目录 一.程序结构 二.分支结构 1.单分支if语句 2 ...

  2. 03.Go语言的设计哲学之三: 并发

    本文视频地址 Go 语言原生并发原则 1) Go 语言自身实现层面支持面向多核硬件的并发执行和调度 提到并发执行与调度,我们首先想到的就是操作系统对进程.线程的调度.操作系统调度器会将系统中的多个线程 ...

  3. C语言集锦 | 03 - C语言的复合数据类型(typedef关键字、结构体、枚举体、共用体)

    文档版本 更新时间 更新内容 v1.0 2020-09-14 初稿完成 文章目录 一.typedef关键词 二.结构体(重点) 1. 为什么需要结构体 2. 什么是结构体 3. 如何定义结构体 4. ...

  4. 【嵌入式】C语言高级编程-语句表达式(03)

    00. 目录 文章目录 00. 目录 01. C语言的表达式 02. C语言的语句 03. C语言中的代码块 04. C语言中的语句表达式 05. 宏中使用语句表达式 06. Linux内核应用示例 ...

  5. AI Studio下C语言编程:一道简单的C语言作业题目

    简 介: 本文测试了在 AI Studio中进行C语言编程的过程.使用与 搭建AI Studio 中Python开发环境 同样的 "AIS" python文件,可以在Windows ...

  6. GPM - 多语言实现视频

    晚上有些睡不着,就录制了一个视频,给大家分享一下思路,希望给天天忙乎的同行一个参考.经常会参考我们的弓箭对战枪炮,我们的步枪对坦克飞机大炮.我们不能光勤奋怒工作,我们还需要有强大的武器才可以.光努力蛮 ...

  7. c语言不安全库_为什么和其他语言相比C语言是快速的语言?

    点击上方蓝字关注我哦- 01 前言 初入门的我们经常听见别人说"真正的程序员用C语言编程,C是最快的语言因为它是最靠近及其底层的语言."那么和其他语言相比C语言到底有什么特别的呢? ...

  8. KCL:声明式的云原生配置策略语言

    楔子: 以蚂蚁集团典型的建站场景为例,在接入 Kusion 后,用户侧配置代码减少到 5.5%,用户面对的 4 个平台通过接入统一代码库而消减,在无其他异常的情况下交付时间从 2 天下降到 2 小时- ...

  9. 48岁的C语言,你知道它背后的历史吗?

    C语言作为一个人尽皆知的语言,甚至没有学过编程语言的人也知道它的大名.经历沧桑岁月的它,已经陪伴我们走过了48个年头.回望当年,C语言还在襁褓之中-- 贝尔实验室特别人员奖.美国计算机协会(ACM)的 ...

最新文章

  1. ITJ上的一篇论文(E-WsFrame)
  2. c++ eos智能合约开发_干货|EOS智能合约开发(一)EOS环境搭建和启动节点
  3. php7连接mongodb,批量添加数据
  4. C++ 标准库 书籍学习记录笔记 第5章
  5. 一文盘点PaddlePaddle官方九大自然语言处理模型
  6. shell脚本实现命令的自动执行
  7. 【经验之谈】Git使用之TortoiseGit配置VS详解
  8. caxa自动保存的文件在哪里_CAXA2011突然退出如何找回未保存文件,新建菜单里的文档恢复没有存档。...
  9. 西铁城手表最外圈数字是什么_有的手表表盘外面有一圈数字,可以转动,是计算什么用的?...
  10. 中国标准走进国际视野,首个零信任国际标准的诞生往事
  11. css样式压缩了怎么还原,CSS代码的压缩方法
  12. java实现一个语法检查器_Java语法检查
  13. 系统滴答定时器的应用
  14. 重要短信通知解决方案(短信通知+语音播报自动双呼)
  15. 前端websocket和后端传输数据
  16. Android LifeCycle详解
  17. jquery 同源下载图片到本地
  18. 彻底解剖人民币升值问题 文/岑科
  19. OPENSTACK-2-管理OSP内部通信-实验
  20. Java:字符串(String)类型转成整型(int)的方法

热门文章

  1. 关于人际交往的书籍推荐,提高人际关系能力你需要科学的方法
  2. 独立按键扫描程序的思考(整合两种算法)
  3. 环保减排绿色工业:数字孪生垃圾焚烧发电站
  4. pdf文件批量转换成jpg文件
  5. jetsonnano加装了USB声卡后设置为默认
  6. 软件测试师需要具备哪些知识,软件测试工程师需要具备哪些能力?
  7. Bootstrap 网页乱码
  8. IE9上传文件出现“SCRIPT5: 拒绝访问”导致不能上传的解决办法
  9. 【EDA实验一】Quartus II 软件和 DE2-115 开发板 使用入门实验
  10. 程序员 离开大厂走进工厂,宁德时代招聘热闹程度堪比春运...