键值的数据结构,又叫字典或关联数组(地图是无序的)
<人力资源/>声明:
<代码> [keytype] valuetype var map1地图 var map [string]字符串 var map [string] int var地图(int)字符串 var map [string] map [string]字符串代码>
<>强声明是不会分配内存的,初始化需要做强>
引用>创建方式:
<代码>包主要 进口“fmt” 函数main () { 一:=(map [string]字符串,10) fmt.Println (a) 一个[a]=" aa " [" b ")=" bb " fmt.Println (a) var b map [string]字符串=map [string]字符串{ “b1”:“v1”, “b2”:“v2”, } fmt.Println (b) {var c=map [string]字符串 “c1”:“v1”, “c2”:“v2”, } fmt.Println (c) d:=map [string]字符串{ “d1”:“v1”, “d2”:“v2”, } fmt.Println (d) }代码>输出:
地图[]
地图(aa b: bb)
地图(b1: v1 b2: v2)
地图(c1: v1 c2: v2)
地图(d1: v1 d2: v2)过程完成退出代码0
<人力资源/>地图相关操作:
<代码> var map [string]字符串=map [string]字符串{“你好”:“世界”} 一个=(map [string]字符串,10) (“hello”)="世界"//插入和更新 瓦尔,好:=(“hello”)//查找 对于k、v:={/范围/遍历 fmt.Println (k、v) } 删除(a,“你好”)//删除 len (a)//长度代码>查找/修改的用法举例:
<代码>函数修改(map [string] map [string]字符串){ _,好:=(“zhangsan”) 如果!好{//要记得初始化(是地图类型的)值 [" zhangsan "]=使(map [string]字符串) } (“zhangsan”) (“passwd”)=" 123456 " [" zhangsan "]["昵称"]=芭遗摇? 返回 } func testMap3 () { 一:=(map [string] map [string]字符串,100) 修改() fmt.Println (a) } 函数main () { testMap3 () } 代码>遍历值为地图的地图:
<代码>包主要 进口“fmt” func反式(map [string] map [string]字符串){ 对于k、v:=范围{ fmt.Println (k) k1, v1:=v范围{ fmt。Println (“\ t”, k1, v1) } } } 函数main () { 一:=(map [string] map [string]字符串,100) [" key1 "]=使(map [string]字符串) (“key1”) (“key2”)=癮bc” (“key1”) (“key3”)=癮bc” (“key1”) (“key4”)=癮bc” (“key1”) (“key5”)=癮bc” [" key2 "]=使(map [string]字符串) (“key2”) (“key2”)=癮bc” (“key2”) (“key3”)=癮bc” 反式(a) 删除(a,“key1”) fmt.Println () 反式(a) fmt.Println (len (a)) }代码>输出:
key1
key2校正
key3
key4校正
key5
key2
key2校正
key3key2
1
key2校正
key3
过程完成退出代码0
<强>地图是引用类型强><代码>函数修改(map [string] int) { (“一”)=134 }代码>片地图:
<代码>项目:=(int[][]地图(int), 5) 我:=0;我& lt;5;我+ + { 东西[我]=让(map [int] (int)) }代码>地图排序:
<代码>。先获取所有钥匙,把钥匙进行排序 b。按照排序好的钥匙,进行遍历代码>映射反转:
<代码>。初始化另外一个地图,把键,值互换即可代码><人力资源/>映射的值也可以是地图:
<代码>:=(map [string] map [string]字符串,10)/*//报错!作为值的map [string]字符串也要初始化才行 (“k1”) (“k2”)=肮? fmt.Println *///作为值的map [string]字符串也要初始化才行! [" k1 "]=使(map [string]字符串) (“k1”) (“k2”)=肮? (“k1”) (“k3”)=昂呛恰? (“k1”) (“k4)=昂俸佟? fmt.Println (a) 代码>地图/字典