首页 > 社交 > 科普中国

GO学习

常驻编辑 科普中国 2022-05-23 多维   天公   数组   切片   虚空   数值   长度   类型   操作   数据

Map的使用v67拜客生活常识网

package main


import "fmt"


func main() {
  /*
  map:映射,是一种专门用于存储键值对的集合,属于引用类型


  存储的特点:
    A:存储的是无序的键值对
    B:键不能重复,并且和value值一一对应。
      map中key不能重复,如果重复,那么新的value会覆盖原来的,程序不会报错.


  语法结构:
    1.创建map
      var map1 map[key类型]value类型
        nil map,无法直接使用


      var map2 = make(map[key类型]value类型)


      var map3 = map[key类型]value类型{key:value,key:value,key:value...}


    2.添加/修改
      map[key]=value
        如果key存在,就可以修改数据
        如果key不存在,就是添加数据


    3.获取
      map[key]-->value


      value,ok :=map[key]
        根据key获取对应的value
          如果key存在,value就是对应的数据,ok为true
          如果key不存在,value就是值类型的默认值,ok为false


    4.删除数据:
      delete(map,key)
        如果key存在,就可以直接删除
        如果key不存在,删除失败


    5.长度:
      len()


  每种数据类型:
    int:0
    float:0.0-->0
    string:""
    array:[00000]


    sliece:nil
    map:nil
  */


  //1.创建map
  var map1 map[int]string
  var map2 = make(map[int]string)
  var map3 = map[string]int{"Go":98,"Python":87,"Java":79,"Heml":93}


  fmt.Println(map1)
  fmt.Println(map2)
  fmt.Println(map3)


  fmt.Println(map1 == nil)
  fmt.Println(map2 == nil)
  fmt.Println(map3 == nil)


  //map1[1] ="hello" //panic: assignment to entry in nil map


  //2.nil map
  if map1 == nil{
    map1 = make(map[int]string)
    fmt.Println(map1 == nil)
  }


  //3.存储键值对到map中
  //map1[key] = value
  map1[1] ="hello"
  map1[2] ="world"
  map1[3] ="ruby"
  map1[4] =""


  //4.获取数据,根据key获取对应的value值
  //根据key获取对应的value,如果key存在,获取数值,如果key不存在,获取的是value值类型的零值
  fmt.Println(map1)
  fmt.Println(map1[3])//根据key为3,获取对应的value值
  fmt.Println(map1[33])//""


  //判断key/value是否存在
  v1,ok := map1[33]
  if ok{
    fmt.Println("对应的数值是:",v1)
  }else{
    fmt.Println("操作的key不存在,获取到的是零值:",v1)
  }


  //5.修改数据
  fmt.Println(map1)
  map1[2] = "虚空"
  fmt.Println(map1)


  //6.删除数据
  delete(map1,3)
  fmt.Println(map1)
  //删除不存在的键
  delete(map1,33)
  fmt.Println(map1)


  //7.长度
  fmt.Println(len(map1))




}

运行输出:v67拜客生活常识网

map[]
map[]
map[Go:98 Heml:93 Java:79 Python:87]
true
false
false
false
map[1:hello 2:world 3:ruby 4:]
ruby


操作的key不存在,获取到的是零值:
map[1:hello 2:world 3:ruby 4:]
map[1:hello 2:虚空 3:ruby 4:]
map[1:hello 2:虚空 4:]
map[1:hello 2:虚空 4:]
3


Process finished with exit code 0


v67拜客生活常识网

读完点个赞,给我的坚持更新注入新的活力。v67拜客生活常识网

2022.05.21 日更 73/365 天v67拜客生活常识网

公众号:3天时间v67拜客生活常识网


v67拜客生活常识网

往期同类文章:v67拜客生活常识网

GO学习 深拷贝和浅拷贝v67拜客生活常识网

GO学习 数组上创建切片v67拜客生活常识网

GO学习 slicev67拜客生活常识网

GO学习 多维数组v67拜客生活常识网

GO学习 Array类型和排序v67拜客生活常识网

GO学习 Arrayv67拜客生活常识网

相关阅读:

  • 善存多维元素片怎么吃(善存能改善男人性功能)
  • 肚子饿怎么办 吃了多维牛磺酸片感觉肚子很会饿?
  • 第七届安康富硒美食节即将举办
  • 白洞是宇宙的奇点吗?
  • 多维男士多种维生素矿物质片有用吗,多维男士多种维生素
  • 星天外软件—中国CAPP领域SaaS平台首倡者
  • 市场监管总局组织“百家电商平台点亮”行动促消费促发
  • 年内第二批游戏版号下发
  • 未来几年必火的行业
  • 壹悟科技携手锐太供应链共同赋能悠可美妆电商仓储项目
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。