东莞市盛裕绒艺玩具有限公司

东莞市盛裕绒艺玩具有限公司

宝马会官网 网站

15184026019
联系方式
全国服务热线: 15184026019

咨询热线:13521350348
联系人:陈星宇
地址:山东省济南市槐荫区经一纬五发祥一号公馆1614

Go语言中映射表map的使用

来源:宝马会官网 网站   发布时间:2019-11-23   点击量:38

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: truevalue, 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}

完!原文出自:小韩说课微信关注:小韩说课

相关产品

COPYRIGHTS©2017 宝马会官网 网站 ALL RIGHTS RESERVED 备案号:38