golang-Map

map

  1. 声明map

        1. var m map[int]string; m=map[int]string{} -> 完成初始化  // [int]代表key的类型,string代表value的类型
         2. m := make(map[int]string)
         3. map字面量的语法,同时还可以指定一些最初的key/value
            -> 
            ages := map[string]int{
                "alice":31,
                "charlie":34
            }
    
            相当于:
            ages := make(map[string]int)
            ages["alice"] = 31
            ages["charlie"] = 34
    
  2. 删除键值

    delete(m,1)  // m是map对象,1是键名
  3. 判断键存在不存在

    a,ok := m[2][1] // 此时ok=false(如果该位置元素不存在)
  4. 迭代

    for k,v := range m{}
  5. 排序

    import sort
    sort.Ints(s)
  6. 取值

    • fmt.Println(ages[“alice”])
    • 取值操作是安全的,即使key不存在也没关系,如果查找失败,则返回value对应的零值。
    • map中的元素并不是一个变量,因此不能对map的元素进行取址操作(map可能随着元素数量的增长而重新分配更大的内存空间,从而导致之前的地址无效)
    • 遍历取 ->

      for name,age := ages{
            fmt.Println(name,age)
      }
      
  7. 迭代顺序是不确定的,每次的遍历顺序都不相同,如果要求按顺序遍历,则必须显式对key进行排序,可以用sort包的strings函数对字符串slice进行排序

  8. map类型的零值是nil -> map[] ,也就是引用任何哈希表
  9. 要向map存数据前必须先创建map
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌套map是指在Go编程语言中,使用map作为map的值。可以通过在map中存储map来实现嵌套map的功能。例如,可以创建一个类型为`map[string]map[string]string`的变量来表示一个嵌套map,其中外部map的键是字符串类型,值是内部map,内部map的键也是字符串类型,值是字符串类型。使用这种嵌套map的结构可以实现更复杂的数据存储和访问需求。 在golang中,可以通过以下方式来创建和操作嵌套map: ``` m := make(map[string]map[string]string) mm := make(map[string]string) mm["k1k1k1"] = "sssss" m["kkk"] = mm ``` 以上代码创建了一个嵌套map `m`,其中外部map的键是字符串类型,值是内部map `mm`。内部map `mm` 的键是字符串类型,值是字符串类型。可以通过`m["kkk"]["k1k1k1"]`来访问内部map中的值。 在上述代码的运行结果中,可以看到一个示例的嵌套map的输出结果。`MultityMapA`、`MultityMapB` 和 `MultityMapC` 是外部map的键,而对应的值是内部map。内部map的键是 `Key`,值是 `Value`。通过这种方式,可以在go中实现复杂的数据结构和逻辑。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [Golang 嵌套map赋值办法](https://blog.csdn.net/newjueqi/article/details/36380269)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [golang map多层嵌套使用及遍历方法汇总](https://blog.csdn.net/boyhandsome7/article/details/79734847)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值