golang之map的使用声明
1.map的基本介绍
map是key-value数据结构,又称为字段或者关联数组。类似其它编程语言的集合,在编程中是经常使用到的
2.map的声明
1)基本语法
var map 变量名 map[keytype] valuetype
注意:声明是不会分配内存的,初始化需要make,分配内存后才能赋值和使用。
func main() {
var a map[string]string
a = make(map[string]string, 10)
a["no1"] = "allin"
a["no2"] = "alex"
a["no1"] = "egon"
a["no3"] = "sdfegon"
fmt.Println(a)
}
对上面代码的说明
a.map在使用前一定要make
b.map的key是不能重复,如果重复了,则以最后这个key-value为准
c.map的value是可以相同的
d.map的key-value是无序
e.make内置函数数目

map的三种声明方式:
var a map[string]string
a = make(map[string]string, 10)
a["no1"] = "allin"
a["no2"] = "alex"
a["no1"] = "egon"
a["no3"] = "sdfegon"
fmt.Println(a) var b map[string]string
b = make(map[string]string, 10)
b["no1"] = "宋江"
b["no2"] = "吴用"
b["no1"] = "武松"
b["no3"] = "吴用"
fmt.Println(b) heros := map[string]string {
"hero1": "宋江",
"hero2": "lujunyi",
"hero3": "吴用",
}
heros["hero4"] = "林冲"
fmt.Println("heros=", heros)
map删除:
delete(map, "key"),delete是一个内置函数,如果key存在,就删除该key-value,如果key不存在,不操作,但是也不会报错。
如果我们要删除map的所有key,没有一个专门的方法一次删除,可以遍历一下key,逐个删除或者map = kake(...),make一个新的,让原来的成为垃圾,被gc回收。
map查找:
val, ok := studentMap["stu02"]["name"]
if ok {
fmt.Println("aaa", val)
} else {
fmt.Println("bbb")
}
说明:如果student这个mapk中存在“nol", 那么返回true, 否则返回false
map遍历:
for _, v := range studentMap {
//fmt.Println(k, v)
for k1, v1 := range v {
fmt.Println(k1, v1)
}
}
map切片:
切片的数据类型如果是map,则我们称为slice of map,map切片,这样使用则map个数就可以动态变化了。
map排序:
golang中没有一个专门的方法针对map的key进行排序
golang中map的排序,是先将key进行排序,然后根据key值遍历输出即可
map1 := make(map[int]int, 10)
map1[10] = 100
map1[1] = 13
map1[4] = 56
map1[8] = 90
fmt.Println(map1) var keys []int
for k, _ := range map1 {
keys = append(keys, k)
}
sort.Ints(keys)
for _, k := range keys {
fmt.Printf("map1[%v]=%v \n", k, map1[k])
}
map使用细节:
1)map费用类型,遵守引用类型传递的机制,在一个函数接收map,修改后,会直接修改原来的map
2)map的容量达到后,再想map增加元素,会自动扩容,并不会发生panic,也就是说map能动态的增长键值对
3)map的value也经常使用struct类型,更适合管理复杂的数据
golang之map的使用声明的更多相关文章
- Golang中map的三种声明方式和简单实现增删改查
package main import ( "fmt" ) func main() { test3 := map[string]string{ "one": & ...
- 总结golang之map
总结golang之map 2017年04月13日 23:35:53 趁年轻造起来 阅读数:18637 标签: golangmapgo 更多 个人分类: golang 版权声明:本文为博主原创文章, ...
- golang 中 map 转 struct
golang 中 map 转 struct package main import ( "fmt" "github.com/goinggo/mapstructure&qu ...
- golang的map
map--字典 map的基本使用: package main import "fmt" // 先声明 type PersonInfo struct { id string name ...
- Golang:sync.Map
由于map在gorountine 上不是安全的,所以在大量并发读写的时候,会出现错误. 在1.9版的时候golang推出了sync.Map. sync.Map 通过阅读源码我们发现sync.Map是通 ...
- Golang 使用Map构建Set类型的实现方法
前言 本篇主要给大家讲述了如何利用Go语言的语法特性实现Set类型的数据结构,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍吧. 需求 对于Set类型的数据结构,其实本质上跟List没什么多 ...
- golang之map数据类型
先上代码…… package main import "fmt" func testMap() { //两种声明map方式,切记,必须初始化才能用,否则panic //var a ...
- golang 基础 map及工厂函数
Map是一种数据结构,是一个集合,用于存储一系列无序的键值对.它基于键存储的,键就像一个索引一样,这也是Map强大的地方,可以快速快速检索数据,键指向与该键关联的值. 内部实现 Map是基于 散列表 ...
- golang中map原理剖析
1. golang中的map有自己的一套实现原理,其核心是由hmap和bmap两个结构体实现的 2. 初始化map package main func main() { // 初始化一个可容纳10个 ...
随机推荐
- ASP.NET进行请求转发
前言 前两天将网站的部分功能在小程序上实现,网站的后台是http,没有配置域名和安全证书,小程序的线上版本是无法访问的,因此需要从配有域名和安全证书的站点进行转发.即小程序请求A,A转发请求到B,B获 ...
- Java 程序流程语句
顺序结构 什么是顺序结构:一行一行的执行代码 选择结构 if 什么是选择结构:通过判断条件来做选择的语句,我们称为选择语句或分支语句 定义方式:if语句使用boolean表达式或boolean值作为选 ...
- 作妖 | "该文件没有与之关联的程序来执行该操作..."的解决方法(删除快捷方式小箭头所致)
文章目录 开始作妖 后悔作妖 终结作妖 开始作妖 这是次很作妖的体验过程.因为重新换了个系统,看着桌面上这些快捷方式都有个讨人嫌的小箭头,就在网上搜了搜解决办法. 比如,将下面的内容复制到记事本中,再 ...
- pytest 基本用法
1.断言用assert,可以进行==,!=,+,-,*,/,<=,>=,is True.False,is not True.False ,in ,not in 等判断. import py ...
- 目录:JAVA
收藏: Java:类与继承
- 【分类算法】决策树(Decision Tree)
(注:本篇博文是对<统计学习方法>中决策树一章的归纳总结,下列的一些文字和图例均引自此书~) 决策树(decision tree)属于分类/回归方法.其具有可读性.可解释性.分类速度快等优 ...
- 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_17-身份校验-身份校验过虑器编写
5 身份校验 5.1 需求分析 本小节实现网关连接Redis校验令牌: 1.从cookie查询用户身份令牌是否存在,不存在则拒绝访问 2.从http header查询jwt令牌是否存在,不存在则拒绝访 ...
- c语言面试宝典(经典,超详细)
c语言面试宝典(经典,超详细) 2018年08月25日 09:32:19 chengxuyuan997 阅读数:7799 摘自:https://blog.csdn.net/chengxuyuan9 ...
- Qt编写控件属性设计器9-数据库采集
一.前言 数据库作为数据源,在很多组态软件中使用非常多,指定数据库类型,填写好数据库连接信息,指定对应的数据库表和字段,采集间隔,程序按照采集间隔自动采集数据库数据,绑定到界面上的控件赋值显示即可.使 ...
- 关于采样率&位深&码率&无损的一些心得
转载自:https://blog.csdn.net/Marenow/article/details/85253283 记笔记,记下来自己的一些关于音频基础知识的总结. 采样率外界的声音都是模拟信号,在 ...