一 点睛

map 是 key-value 数据结构,又称为字段数组或者关联数组。

二 map 的声明

1 基本语法

var map 变量名 map[keytype]valuetype

2 key 的类型

golang 中的 map,key 可以是很多种类型。

例如

bool、数字、string、指针、channel , 还可以是只包含前面几个类型的接口、结构体、数组。

通常 key 为 int、string。

注意

slice、map 和 function 不可以。因为这几个没法用 == 来判断。

3 valuetype 的类型

valuetype 的类型和 key 基本一样,这里不再赘述。

通常为: 数字(整数,浮点数)、string、map、struct。

4 map 声明的举例

var a map[string]string

var a map[string]int

var a map[int]string

var a map[string]map[string]string

注意

声明是不会分配内存的,初始化需要 make ,分配内存后才能赋值和使用。

5 实战

package mainimport ("fmt"
)func main() {// map的声明和注意事项var a map[string]string// 在使用 map 前,需要先 make,make 的作用就是给 map 分配数据空间//a = make(map[string]string, 10)a = make(map[string]string)a["no1"] = "宋江"a["no2"] = "吴用"a["no1"] = "武松"a["no3"] = "吴用"fmt.Println(a)
}

6 测试

map[no1:武松 no2:吴用 no3:吴用]

7 说明

a map 在使用前一定要 make。

b map 的 key 不能重复,如果重复了,则以最后这个 key-value 为准。

c map 的 value 是可以相同的。

d map 的 key-value 是无序。

e make 内置函数

三 map 的使用

1 代码

package mainimport ("fmt"
)func main() {// 方式一var a map[string]string// 在使用 map 前,需要先 make, make 的作用就是给map分配数据空间。a = make(map[string]string, 10)a["no1"] = "宋江"a["no2"] = "吴用"a["no1"] = "武松"a["no3"] = "吴用"fmt.Println(a)// 方式二cities := make(map[string]string)cities["no1"] = "北京"cities["no2"] = "天津"cities["no3"] = "上海"fmt.Println(cities)// 方式三heroes := map[string]string{"hero1": "宋江","hero2": "卢俊义","hero3": "吴用",}heroes["hero4"] = "林冲"fmt.Println("heroes=", heroes)
}

2 测试

map[no1:武松 no3:吴用 no2:吴用]
map[no1:北京 no2:天津 no3:上海]
heroes= map[hero4:林冲 hero1:宋江 hero2:卢俊义 hero3:吴用]

四 实战

1 要求

要存放 3 个学生信息, 每个学生有 name 和 sex 信息。

2 思路

使用 map[string]map[string]string

3 代码

package mainimport "fmt"func main() {studentMap := make(map[string]map[string]string)studentMap["stu01"] = make(map[string]string, 3)studentMap["stu01"]["name"] = "tom"studentMap["stu01"]["sex"] = "男"studentMap["stu01"]["address"] = "北京长安街"studentMap["stu02"] = make(map[string]string) // 这句话不能少studentMap["stu02"]["name"] = "mary"studentMap["stu02"]["sex"] = "女"studentMap["stu02"]["address"] = "上海黄浦江"fmt.Println(studentMap)fmt.Println(studentMap["stu02"])
}

4 测试

map[stu01:map[name:tom sex:男 address:北京长安街] stu02:map[name:mary sex:女 address:上海黄浦江]]

map[name:mary sex:女 address:上海黄浦江]

go中map的基本介绍相关推荐

  1. php 数据类型 map,es6中Set和Map的对比介绍(附代码)

    本篇文章给大家带来的内容是关于es6中Set和Map的对比介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Set 1.add()方法和size属性{ let list ...

  2. 目标检测中的Iou与map指标详细介绍(零基础)

    目标检测中的Iou与map指标详细介绍(零基础) 最近在算法岗实习,更新的频率会低一点,希望在实习过程中学到更多有用的视觉知识. IOU指标 下图中Ground truth为标记的正确框,Predic ...

  3. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

  4. java map set_java中Map、Set、List的简单使用教程(快速入门)

    Map.Set.List List的常用方法 1.创建 List list = new ArrayList<>(); List list = new LinkedList<>( ...

  5. Java 8 中 Map 骚操作之 merge() 的用法

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | juejin.im/post/5d9b455a ...

  6. 2020-12-09 深度学习 卷积神经网络中感受野的详细介绍

    卷积神经网络中感受野的详细介绍 1. 感受野的概念 在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射 ...

  7. python中all函数的用法_python中map、any、all函数用法分析

    这篇文章主要介绍了 python 中 map . any . all 函数用法 , 实例分析了 map . any . all 函数 的相关使用技巧 , 具有一定参考借鉴价值 , 需要的朋友可以参考下 ...

  8. c++ map是有序还是无序的_C++ STL中Map的按Key排序和按Value排序

    map是用来存放键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择. 我们这样定义 ...

  9. Python函数式编程中map()、reduce()和filter()函数的用法

    Python中map().reduce()和filter()三个函数均是应用于序列的内置函数,分别对序列进行遍历.递归计算以及过滤操作.这三个内置函数在实际使用过程中常常和"行内函数&quo ...

最新文章

  1. Python开发(基础):字符串
  2. minio 文件预览_MinIO安装及使用教程(windows) 及java 上传 下载
  3. VS建lUML画类图
  4. linux mint python3.6,Linux 上如何安装并切换最新版本的 Python 3.6
  5. 频繁模式挖掘apriori算法介绍及Java实现
  6. 初级电工实训考核柜装置
  7. 使用python移动复制文件
  8. 某次TPMC测试一直上不去的原因
  9. ICP算法详解——我见过最清晰的解释
  10. 解决win10家庭版本系统无法远程连接问题
  11. 判断距离1970年1月1日的天数
  12. 社交电商的 “比基尼”,被云集跑出会员的力量
  13. 在自行下载的背景图片上写字
  14. 出了山寨机,国产的就没法活了?
  15. android studio开发微信界面
  16. Pregel: A System for Large-Scale Graph Processing
  17. 星际战甲与计算机版本不兼容,win10星际战甲游戏出现无法更新的三种解决方法...
  18. Python编程语句
  19. 微信公众号开发之订阅号如何获取用户信息(一)
  20. 重识Nginx - 09 使用Nginx内置变量$limit_rate实现带宽限速

热门文章

  1. 服务器系统安装(DELL)
  2. atof跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换
  3. 使用jstack定位应用服务器CPU使用率高的过程记录
  4. 查询linux系统中文件名颜色分别代表什么
  5. L138常有网址-李云 酷壳等
  6. ARM基础教程 | ARM、Cortex-M与ARMv8-M什么关系?
  7. 如何让你开发的游戏赚钱
  8. 技术人要有一些兴趣爱好
  9. 条件极值例题_条件极值与函数习题课.doc
  10. 抗病毒软件供应商担心恶意软件生产速度