为了账号安全,请及时绑定邮箱和手机立即绑定

Go语言中映射表map的使用

标签:
Go


1 概述

Go语言中的键值对(key->value)集合,称之为映射map。映射map是变长类型,定义时不需要指定长度。映射map是无序的,遍历是的顺序不可期,原因是底层由hash表实现。

逻辑结构表示为:

map示意

2 创建语法

var m = map[key_type]value_type{key1: value1, key2: value2}

var m = make(map[key_type]value_type)

// 示例,字符串型下标,字符串型值:

var m = make(map[string]string) //make()会分配内存空间,初始化。

m["east"] = "东"

m["west"] = "西"

// 直接初始化

var m = map[string]string{"east": "东", "west": "西"}

3 []下标操作

与数组类型,使用下标完成映射元素的访问。

var m = map[string]string{"east": "东", "west": "西"}

fmt.Println(m["east"]) 

// 东

fmt.Println(m["west"]) 

// 西

4 for-range

for k, v := range mapVar {

    fmt.Println(k, v)

}

遍历的顺序不可期。

5 映射是引用类型

切片为引用类型,因此切片的默认初始值为nil。

同时复制时为引用传递,修改会相互影响。

6 检测元素是否存在

通过key获取元素时,使用第二个变量,可以接收到当前key是否存在的布尔值。

var m = map[string]string{"east": "东", "west": "西"}

value, exists := m["south"]

// value: 东, exists: true

value, exists := m["south"]

// value: , exists: false

7 delete 删除元素

delete(map, key),删除 map 中,指定的 key。如果 key 不存在,该操作不会产生错误。

var m = map[string]string{"east": "东", "west": "西"}

delete(m, "west")

fmt.Println(m)

// map[east:东]

8 键值对调

如果 map 的值类型可以作为 key 且所有的 value 是唯一的,那么通过下面的方法可以做到键值对调:

var m = map[string]string{"east": "东", "west": "西"}

for k, v := range m {

  m[v] = k

}

完!

原文出自:小韩说课

微信关注:小韩说课

小韩说课

©著作权归作者所有:来自51CTO博客作者小韩说课的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消