内容简介:Go语言中的键值对(key->value)集合,称之为映射map。映射map是变长类型,定义时不需要指定长度。映射map是无序的,遍历是的顺序不可期,原因是底层由hash表实现。 逻辑结构表示为:与数组类型,使用下标完成映射元素的访问。遍历的顺序不可期。
1 概述
Go语言中的键值对(key->value)集合,称之为映射map。映射map是变长类型,定义时不需要指定长度。映射map是无序的,遍历是的顺序不可期,原因是底层由hash表实现。 逻辑结构表示为:
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的使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 11 Go语言的映射——map
- Go语言入门——数组、切片和映射
- go语言映射(map)要点总结
- Protocol Buffers 学习(2):字段类型和其他语言字段类型之间的映射
- Protocol Buffers 学习(2):字段类型和其他语言字段类型之间的映射
- Go语言快速入门笔记(2)--值类型和引用类型,silce切片,map映射
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Probability and Computing
Michael Mitzenmacher、Eli Upfal / Cambridge University Press / 2005-01-31 / USD 66.00
Assuming only an elementary background in discrete mathematics, this textbook is an excellent introduction to the probabilistic techniques and paradigms used in the development of probabilistic algori......一起来看看 《Probability and Computing》 这本书的介绍吧!