Go语言中映射表map的使用

栏目: Go · 发布时间: 7年前

内容简介:Go语言中的键值对(key->value)集合,称之为映射map。映射map是变长类型,定义时不需要指定长度。映射map是无序的,遍历是的顺序不可期,原因是底层由hash表实现。 逻辑结构表示为:与数组类型,使用下标完成映射元素的访问。遍历的顺序不可期。

1 概述

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

完! 原文出自: 小韩说课

微信关注:小韩说课 Go语言中映射表map的使用


以上所述就是小编给大家介绍的《Go语言中映射表map的使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

UX设计之道

UX设计之道

[美]Russ Unger、[美]Carolyn Chandler / 陈军亮 / 人民邮电出版社 / 2015-4-1 / 49.00元

本书的目标是提供一些基本的工具及应用场景,帮助你及工作团队一起来使用这些工具和方法。正如你将在本书很多章节中看到的那样,我们没有尝试包罗万象、迎和所有的人,但我们试图给你提供一些用户体验(UX)设计师需要具备的核心信息和知识。除了我们自己的案例外,我们还提供了一些帮你了解如何开始准备基本材料的案例,让你可综合这些信息来创建某些更新、更好或者是更适合自己意图的东西。一起来看看 《UX设计之道》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具