首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Golang】快速复习指南QuickReview(三)——map

【Golang】快速复习指南QuickReview(三)——map

作者头像
DDGarfield
发布2022-06-23 18:12:53
发布2022-06-23 18:12:53
4260
举报
文章被收录于专栏:加菲的博客加菲的博客

学名:映射关系容器。

俗名:键值对key-value

map跟slice一样,依然是一个引用类型。

map

1.C#中的字典

根据map的特点,博主类比的是C#中字典Dictionary,同样都是键值对。

代码语言:javascript
复制
//定义 初始化
Dictionary<int, string> dic = new Dictionary<int, string>
{
    {1,"学生"},
    {2,"老师"},
    {3,"家长"}
};

//新增
dic.Add(4, "校长");

//判断是否含key
if (dic.ContainsKey(1))
{

}

//判断是否含value
if (dic.ContainsValue("学生")) { }

//遍历字典
foreach (KeyValuePair<int, string> kv in dic)
{

}
//删除指定key的元素
dic.Remove(1);

//清空字典
dic.Clear();

2.Golang中的map

2.1 定义 初始化

make(map[KeyType]ValueType, [cap]),cap可选

代码语言:javascript
复制
testMap := make(map[int]string, 3)
testMap[1] = "学生"
testMap[2] = "老师"
testMap[3] = "家长"
fmt.Println(testMap)
代码语言:javascript
复制
map[1:学生 2:老师 3:家长]

2.2 遍历

使用for k,v:=range map{}遍历:

代码语言:javascript
复制
//遍历
for k, v := range testMap {
    fmt.Println(k, v)
}
代码语言:javascript
复制
1 学生
2 老师
3 家长

2.3 删除

删除,使用内置函数delete()

代码语言:javascript
复制
func delete(m map[Key]Type, key Key)
代码语言:javascript
复制
//删除
delete(testMap, 1)

for k, v := range testMap {
    fmt.Println(k, v)
}
代码语言:javascript
复制
3 家长
2 老师

2.4 重点来了

切片是一种类型,且使用频繁,切片就也能作为map的值value

代码语言:javascript
复制
var mapValueSlice = make(map[string][]string, 3)
var sc []string
sc = append(sc, "成都", "绵阳", "宜宾")
var sx = []string{"西安", "汉中", "榆林"}
mapValueSlice["四川"] = sc
mapValueSlice["陕西"] = sx
fmt.Println(mapValueSlice)
代码语言:javascript
复制
map[四川:[成都 绵阳 宜宾] 陕西:[西安 汉中 榆林]]

最后说一下,golang的源码读懂需要基础语法很牢固,后面的函数,方法接收者,指针,参数,返回值,通道等等,远远一看,中括号[]横飞,*,其实万变不离其宗,都是这些基础类型按照语义组合而成。

再次强调:这个系列并不是教程,如果想系统的学习,博主可推荐学习资源。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲的博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • map
    • 1.C#中的字典
    • 2.Golang中的map
      • 2.1 定义 初始化
      • 2.2 遍历
      • 2.3 删除
      • 2.4 重点来了
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档