go中map的基本介绍
一 点睛
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的基本介绍相关推荐
- php 数据类型 map,es6中Set和Map的对比介绍(附代码)
本篇文章给大家带来的内容是关于es6中Set和Map的对比介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Set 1.add()方法和size属性{ let list ...
- 目标检测中的Iou与map指标详细介绍(零基础)
目标检测中的Iou与map指标详细介绍(零基础) 最近在算法岗实习,更新的频率会低一点,希望在实习过程中学到更多有用的视觉知识. IOU指标 下图中Ground truth为标记的正确框,Predic ...
- Java基础-JAVA中常见的数据结构介绍
Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...
- java map set_java中Map、Set、List的简单使用教程(快速入门)
Map.Set.List List的常用方法 1.创建 List list = new ArrayList<>(); List list = new LinkedList<>( ...
- Java 8 中 Map 骚操作之 merge() 的用法
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | juejin.im/post/5d9b455a ...
- 2020-12-09 深度学习 卷积神经网络中感受野的详细介绍
卷积神经网络中感受野的详细介绍 1. 感受野的概念 在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射 ...
- python中all函数的用法_python中map、any、all函数用法分析
这篇文章主要介绍了 python 中 map . any . all 函数用法 , 实例分析了 map . any . all 函数 的相关使用技巧 , 具有一定参考借鉴价值 , 需要的朋友可以参考下 ...
- c++ map是有序还是无序的_C++ STL中Map的按Key排序和按Value排序
map是用来存放键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择. 我们这样定义 ...
- Python函数式编程中map()、reduce()和filter()函数的用法
Python中map().reduce()和filter()三个函数均是应用于序列的内置函数,分别对序列进行遍历.递归计算以及过滤操作.这三个内置函数在实际使用过程中常常和"行内函数&quo ...
最新文章
- Python开发(基础):字符串
- minio 文件预览_MinIO安装及使用教程(windows) 及java 上传 下载
- VS建lUML画类图
- linux mint python3.6,Linux 上如何安装并切换最新版本的 Python 3.6
- 频繁模式挖掘apriori算法介绍及Java实现
- 初级电工实训考核柜装置
- 使用python移动复制文件
- 某次TPMC测试一直上不去的原因
- ICP算法详解——我见过最清晰的解释
- 解决win10家庭版本系统无法远程连接问题
- 判断距离1970年1月1日的天数
- 社交电商的 “比基尼”,被云集跑出会员的力量
- 在自行下载的背景图片上写字
- 出了山寨机,国产的就没法活了?
- android studio开发微信界面
- Pregel: A System for Large-Scale Graph Processing
- 星际战甲与计算机版本不兼容,win10星际战甲游戏出现无法更新的三种解决方法...
- Python编程语句
- 微信公众号开发之订阅号如何获取用户信息(一)
- 重识Nginx - 09 使用Nginx内置变量$limit_rate实现带宽限速