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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值