Go(05)map介绍
原文地址:
http://www.limerence2017.com/2019/06/11/golang06/
基本用法
map同样也是引用类型,map在使用前需要通过make进行初始化,否则会报panic错误。
map 初始化和插入
1 |
type PersonInfo struct { |
可以看到map使用前用make先构造初始化,之后进行了插入,如果key存在,则修改value
map 查找
1 |
//从这个map查找键为"1234" |
查找指定key,返回值为value和bool类型结果,所以先判断bool类型值是否为true
map 进阶
map可以直接显示初始化不需要make构造。
1 |
var data map[string]int = map[string]int{"bob": 18, "luce": 28} |
map是引用类型,函数通过修改形参,达到修改外部实参的功能
1 |
func modify(data map[string]int, key string, value int) { |
map 大小可以通过len函数获得,如果不采用显示初始化方式,只声明map,在使用前一定要make初始化
map遍历采用range方式,且map是无序的,切记。
1 |
//map大小 |
上面的代码遍历map,打印结果为
1 |
key: bob value: 178 |
可以实现一个函数,将map中的key存到slice中,然后排序,之后根据排好顺序的slice遍历
得到的就是排序后的结果
1 |
func sortprintmap(data map[string]int) { |
在main函数调用sortprintmap(data2),结果如下
1 |
key is Arean value is 33 |
二维map
二维map操作和之前类似,只是声明时value还是一个map
1 |
//二维map |
二维map同样遵循使用前先make初始化原则,并且在二层map要使用前仍然需要make
1 |
//使用前需要初始化 |
二维map遍历
1 |
//二维map 遍历 |
slice 中存储map
1 |
//slice of map |
本着golang所有引用类型,如chan,map,slice,interface,使用前都需要make初始化。
上面代码先初始化slicem,然后再遍历slice,为每个元素初始化map类型
map 反转
1 |
//map 反转 |
其实就是构造一个和原map 的key value相反的map,然后为该map初始化并且插入元素。
上述所有源码下载地址
源码下载地址
谢谢关注我的公众号
Go(05)map介绍的更多相关文章
- go语言基础之map介绍和使用
1.map介绍 Go语言中的map(映射.字典)是一种内置的数据结构,它是一个无序的key—value对的集合,比如以身份证号作为唯一键来标识一个人的信息. 2.map示例 map格式为: map[k ...
- java集合系列——Map介绍(七)
一.Map概述 0.前言 首先介绍Map集合,因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的). 1:介绍 将键映射到 ...
- perl中的默认变量与Z/map介绍
use v6; =begin pod @*ARGS 命令行参数, 不含脚本名 $*PROGRAM-NAME:当前运行脚本的相对路径 $*PROGRAM:当前运行脚本的文件名称 $*CWD:当前工作路径 ...
- iOS开发多线程篇 05 —GCD介绍
iOS开发多线程篇—GCD介绍 一.简单介绍 1.什么是GCD? 全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 纯C语言,提供了非常多强大的函数 2.GCD的优势 G ...
- 几种线程相关的map介绍
Java中平时用的最多的Map集合就是HashMap了,它是线程不安全的. 看下面两个场景: 1.当用在方法内的局部变量时,局部变量属于当前线程级别的变量,其他线程访问不了,所以这时也不存在线程安全不 ...
- java集合系列——Map之HashMap介绍(八)
1.HashMap的简介 (JDK1.7.0_79版本) HashMap是基于哈希表的Map实现的的,一个Key对应一个Value,允许使用null键和null值,不保证映射的顺序,特别是它不保证该顺 ...
- Map集合、散列表、红黑树介绍
前言 声明,本文用得是jdk1.8 前面已经讲了Collection的总览和剖析List集合: Collection总览 List集合就这么简单[源码剖析] 原本我是打算继续将Collection下的 ...
- map,hash_map和unordered_map 实现比较
map介绍 Map是STL[1]的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处 ...
- JavaScript之Map对象
前言 工欲善其事,必先利其器.这是一款以前在前端项目中没有使用过的.有趣的对象,咱来看看如何使用~ 并非arrayObj.map(function) //arrayObj.map与arrayObj.f ...
随机推荐
- particlesjs
今天发现一个粒子动画的插件下个笔记做个备用: <!DOCTYPE html> <html lang="en"> <head> <meta ...
- 好用的数据库压缩软件wingzip
有时候我们导出.sql格式的数据库备份文件过大,超过了某些虚拟空间数据库支持的文件大小限制,我们没办法修改phpMyAdmin 导入MySQL数据库文件大小限制 只能通过压缩数据库来达到上传数据库的目 ...
- 红帽Linux故障定位技术详解与实例(4)
红帽Linux故障定位技术详解与实例(4) 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍然可以访问,故障处理人员可通过console, ssh等方式登录到操作系统上,在shell上执行 ...
- C++之++操作符重载
++ 运算符,还可分为前缀 ++ 和后缀 ++ 运算符. 重载前缀++运算符 C++ 允许重载前缀运算符,以使表达式 ++b 能递增 b 的长度值,并返回结果对象.该运算符可以作为成员函数来重载,这使 ...
- JVM启动参数大全及默认值
Java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足, ...
- Python CGI编程Ⅹ
检索Cookie信息 Cookie信息检索页非常简单,Cookie信息存储在CGI的环境变量HTTP_COOKIE中,存储格式如下: 以下是一个简单的CGI检索cookie信http://www.we ...
- css-动画,a标签下,文字加下划线,而且动画是由中间向两边扩展开
效果: html: <div class="warp"> <a class="welcome">期待您的参与</a> < ...
- 几种最常见的js array操作方法及示例
1. 序言 操作array可谓前端最基础的工作,无论是从接口中取的数据,还是筛选数据,或者是添加按钮权限等等操作,array都是绕不开的东西.array的操作很多,初学者十分容易搞混,不是很熟练的情况 ...
- tp5商城
记录几个要点: 用户使用firbug伪造表单字段,比如伪造表单id字段,如何防止,tp5中好像没有. xss攻击:使用htmlspecialchars() 会把img.p.等等合法标签过滤掉,想要有选 ...
- 翻页的时候更改URL地址
要求点击第一页是url+p1html,点击第二页是url+p2html等等 $("body").on('click','#w_tagPage a[wid]',function(){ ...