地图/字典

  

键值的数据结构,又叫字典或关联数组(地图是无序的)

  <人力资源/>   

声明:   

 <代码> [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校正
key3

  

key2
key2校正
key3

1   

过程完成退出代码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)  

地图/字典