03 go语言_Map
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相关推荐
- JAVA学习笔记 03 - JAVA语言程序结构
本文是Java基础课程的第三课.计算机语言的程序结构无外乎顺序结构.分支结构.循环结构,本文主要介绍Java语言中这些程序结构是如何实现的 文章目录 一.程序结构 二.分支结构 1.单分支if语句 2 ...
- 03.Go语言的设计哲学之三: 并发
本文视频地址 Go 语言原生并发原则 1) Go 语言自身实现层面支持面向多核硬件的并发执行和调度 提到并发执行与调度,我们首先想到的就是操作系统对进程.线程的调度.操作系统调度器会将系统中的多个线程 ...
- C语言集锦 | 03 - C语言的复合数据类型(typedef关键字、结构体、枚举体、共用体)
文档版本 更新时间 更新内容 v1.0 2020-09-14 初稿完成 文章目录 一.typedef关键词 二.结构体(重点) 1. 为什么需要结构体 2. 什么是结构体 3. 如何定义结构体 4. ...
- 【嵌入式】C语言高级编程-语句表达式(03)
00. 目录 文章目录 00. 目录 01. C语言的表达式 02. C语言的语句 03. C语言中的代码块 04. C语言中的语句表达式 05. 宏中使用语句表达式 06. Linux内核应用示例 ...
- AI Studio下C语言编程:一道简单的C语言作业题目
简 介: 本文测试了在 AI Studio中进行C语言编程的过程.使用与 搭建AI Studio 中Python开发环境 同样的 "AIS" python文件,可以在Windows ...
- GPM - 多语言实现视频
晚上有些睡不着,就录制了一个视频,给大家分享一下思路,希望给天天忙乎的同行一个参考.经常会参考我们的弓箭对战枪炮,我们的步枪对坦克飞机大炮.我们不能光勤奋怒工作,我们还需要有强大的武器才可以.光努力蛮 ...
- c语言不安全库_为什么和其他语言相比C语言是快速的语言?
点击上方蓝字关注我哦- 01 前言 初入门的我们经常听见别人说"真正的程序员用C语言编程,C是最快的语言因为它是最靠近及其底层的语言."那么和其他语言相比C语言到底有什么特别的呢? ...
- KCL:声明式的云原生配置策略语言
楔子: 以蚂蚁集团典型的建站场景为例,在接入 Kusion 后,用户侧配置代码减少到 5.5%,用户面对的 4 个平台通过接入统一代码库而消减,在无其他异常的情况下交付时间从 2 天下降到 2 小时- ...
- 48岁的C语言,你知道它背后的历史吗?
C语言作为一个人尽皆知的语言,甚至没有学过编程语言的人也知道它的大名.经历沧桑岁月的它,已经陪伴我们走过了48个年头.回望当年,C语言还在襁褓之中-- 贝尔实验室特别人员奖.美国计算机协会(ACM)的 ...
最新文章
- ITJ上的一篇论文(E-WsFrame)
- c++ eos智能合约开发_干货|EOS智能合约开发(一)EOS环境搭建和启动节点
- php7连接mongodb,批量添加数据
- C++ 标准库 书籍学习记录笔记 第5章
- 一文盘点PaddlePaddle官方九大自然语言处理模型
- shell脚本实现命令的自动执行
- 【经验之谈】Git使用之TortoiseGit配置VS详解
- caxa自动保存的文件在哪里_CAXA2011突然退出如何找回未保存文件,新建菜单里的文档恢复没有存档。...
- 西铁城手表最外圈数字是什么_有的手表表盘外面有一圈数字,可以转动,是计算什么用的?...
- 中国标准走进国际视野,首个零信任国际标准的诞生往事
- css样式压缩了怎么还原,CSS代码的压缩方法
- java实现一个语法检查器_Java语法检查
- 系统滴答定时器的应用
- 重要短信通知解决方案(短信通知+语音播报自动双呼)
- 前端websocket和后端传输数据
- Android LifeCycle详解
- jquery 同源下载图片到本地
- 彻底解剖人民币升值问题 文/岑科
- OPENSTACK-2-管理OSP内部通信-实验
- Java:字符串(String)类型转成整型(int)的方法
热门文章
- 关于人际交往的书籍推荐,提高人际关系能力你需要科学的方法
- 独立按键扫描程序的思考(整合两种算法)
- 环保减排绿色工业:数字孪生垃圾焚烧发电站
- pdf文件批量转换成jpg文件
- jetsonnano加装了USB声卡后设置为默认
- 软件测试师需要具备哪些知识,软件测试工程师需要具备哪些能力?
- Bootstrap 网页乱码
- IE9上传文件出现“SCRIPT5: 拒绝访问”导致不能上传的解决办法
- 【EDA实验一】Quartus II 软件和 DE2-115 开发板 使用入门实验
- 程序员 离开大厂走进工厂,宁德时代招聘热闹程度堪比春运...